mysql A表自动更新和插入B表的数据
A表字段:idnameclassB表字段:idnameclass根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。...
A表字段:
id
name
class
B表字段:
id
name
class
根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。 展开
id
name
class
B表字段:
id
name
class
根据name字段,每当B表有更改和添加新的记录的时候,A表也会自动同步更新记录。 展开
1个回答
展开全部
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 ;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询