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

2025-03-24 05:51:53
推荐回答(1个)
回答1:

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

2、触发器语法

DELIMITER $$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `test`.`MyTrigger` BEFORE/AFTER INSERT/UPDATE/DELETE
    ON `test`.``
    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 ;