同步同一mysql数据库中不同表中的两行

ulydmbyx  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(301)

我有一张table叫 clients ,表中有两列重要信息; id 以及 client . 我在同一个数据库中有一个名为 calendar . 我真的想要两列 id 以及 clientcalendar 要与中的表同步的表 client table。
现在我用这个php在mysql中执行:

INSERT IGNORE INTO calendar (id, client) SELECT id, client FROM clients;

有没有更好的方法来完成这项任务?可能是mysql中的一个内置函数,我忽略了或者类似的东西?

zc0qhyus

zc0qhyus1#

使用触发器:mysql触发器是与表关联的数据库对象。当为表执行定义的操作时,它将被激活。
在表上运行以下mysql语句之一时可以执行触发器:insert、update和delete,并且可以在事件之前或之后调用它。
在主表中插入或更新行并在另一个表中进行更改时,可以触发触发器
例子:

DELIMITER $$

CREATE TRIGGER my_sync_trigger 
AFTER INSERT ON `clients` for each row
begin
INSERT INTO calender (id,client)
Values (new.id, new.client);
END$$

DELIMITER ;

“new”表示插入到clients表中的新值。相同的值将被插入日历的id和client列中。
注意:从表名中删除单引号是因为引号有效地使其成为字符串文字,而不是正确的标识符。分隔符命令将每个语句的结尾从“;”到“$$”,这样mysql就不会与“;”触发器内外
为update和delete创建类似的触发器
示例和语法的简单指南:http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx

相关问题