我的数据库db1
和db2
在同一服务器上的两个数据库上都有表mytable
。
这两个表都包含完全相同的列。
对于Ex:
SNo | fname | lname | Mobile | Status
表格中都有一个列名Status
如果在数据库Status
中的表mytable
中更新了列db1
的值,那么我应该怎么做,那么列Status
的值将在表{{中}自动更新1}}在数据库mytable
我不知道究竟是什么叫它。也许触发!
答案 0 :(得分:3)
你必须在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 $$