mysql A表自动更新和插入B表的数据

A表字段:idnameclassB表字段:idnameclass根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。... A表字段:
id
name
class
B表字段:
id
name
class
根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。
展开
 我来答
zhouxyx
推荐于2017-12-16 · TA获得超过192个赞
知道小有建树答主
回答量:150
采纳率:80%
帮助的人:71.8万
展开全部

1、关于这种自动更新,添加,删除的功能可以使用触发器来现实;

2、触发器语法

DELIMITER $$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `test`.`MyTrigger` BEFORE/AFTER INSERT/UPDATE/DELETE
    ON `test`.`<Table Name>`
    FOR EACH ROW BEGIN
    END$$
DELIMITER ;

3、在MySQL触发器中,动作Insert,Update,Delete是不能同时存在的。根据你的需求,需要写两个触发器,一个在Insert的时候有效,一个在Update的使用有效;

4、创建两个表table_a,table_b;

5、触发器

DELIMITER $$
USE `test`$$
DROP TRIGGER /*!50032 IF EXISTS */ `Insert_Trigger`$$
CREATE
    /*!50017 DEFINER = 'test'@'localhost' */
    TRIGGER `Insert_Trigger` AFTER INSERT ON `table_b` 
    FOR EACH ROW BEGIN
INSERT INTO table_a VALUES (new.id,new.name,new.class);
    END;
$$
DELIMITER ;
DELIMITER $$
USE `test`$$
DROP TRIGGER /*!50032 IF EXISTS */ `Updated_Trigger`$$
CREATE
    /*!50017 DEFINER = 'test'@'localhost' */
    TRIGGER `Updated_Trigger` AFTER UPDATE ON `table_b` 
    FOR EACH ROW BEGIN
UPDATE table_a SET NAME=new.name WHERE id = new.id ;
    END;
$$
DELIMITER ;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式