SQL : 如何在更新第一个数据库中的 table 时自动更新第二个数据库中的 table?
SQL : How to update table Automatically in 2nd database when table in 1st database is updated?
我的数据库 db1
和 db2
在同一服务器的两个数据库上都有 table mytable
。
两个 table 包含完全相同的列。
例如:
SNo | fname | lname | Mobile | Status
两个 table 都有一个列名 Status
我应该怎么做才能在数据库 db1
的 table mytable
中更新列 Status
的值,然后列 Status
的值是在数据库 db2
table mytable
中自动更新
我不知道它到底叫什么。也许触发器!
您必须在 Mysql 中创建触发器。
示例:
CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
我正在使用上面的触发器来更新两个表。
看看这个tutorial
更新
您无法触发 SQL 中的特定列更新,它应用于一行。
您可以将列的条件放入触发器中,如下所示
DELIMITER $$
CREATE TRIGGER myTrigger AFTER UPDATE ON db1.mytable
FOR EACH ROW
BEGIN
if NEW.Status <> OLD.Status
then
update db2.mytable set Status = NEW.Status where sno = OLD.sno;
END if;
END $$
我的数据库 db1
和 db2
在同一服务器的两个数据库上都有 table mytable
。
两个 table 包含完全相同的列。
例如:
SNo | fname | lname | Mobile | Status
两个 table 都有一个列名 Status
我应该怎么做才能在数据库 db1
的 table mytable
中更新列 Status
的值,然后列 Status
的值是在数据库 db2
mytable
中自动更新
我不知道它到底叫什么。也许触发器!
您必须在 Mysql 中创建触发器。
示例:
CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
我正在使用上面的触发器来更新两个表。
看看这个tutorial
更新
您无法触发 SQL 中的特定列更新,它应用于一行。
您可以将列的条件放入触发器中,如下所示
DELIMITER $$
CREATE TRIGGER myTrigger AFTER UPDATE ON db1.mytable
FOR EACH ROW
BEGIN
if NEW.Status <> OLD.Status
then
update db2.mytable set Status = NEW.Status where sno = OLD.sno;
END if;
END $$