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



我有一个名为clients的表,在该表中有两列重要性;idclient.我在同一个数据库中有一个名为calendar的辅助表。我真的希望calendar表中的两列idclient与表中的client列同步。

现在我正在使用这个PHP在MySQL中执行它:

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

有没有更好的方法来完成这项任务?也许是我忽略的MySQL中的内置函数或类似的东西?

使用触发器:MySQL触发器是与表关联的数据库对象。当对表执行定义的操作时,它将被激活。

当您在表上运行以下 MySQL 语句之一时,可以执行触发器:插入、更新和删除,并且可以在事件发生之前或之后调用它。

您可以在主表中插入或更新一行并在另一个表中进行更改时触发

例:

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"代表插入到客户端表中的新值。相同的值将插入到日历中的 id 和客户端列中。

注意:单引号从表名中删除,因为引号有效地使其成为字符串文字而不是正确的标识符。 分隔符命令会将每个语句的结尾从";"更改为"$$",以便MySQL不会与触发器内外的";"混淆

为更新和删除创建类似的触发器

示例和语法的简单指南: http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx

最新更新