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

A表字段:
id
name
class
B表字段:
id
name
class
根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。

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 ;

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答