mysql 觸發(fā)器實現(xiàn)兩個表的數(shù)據(jù)同步
更新時間:2012年11月15日 11:25:31 作者:
本文將介紹mysql 觸發(fā)器實現(xiàn)兩個表的數(shù)據(jù)同步,需要的朋友可以參考
mysql通過觸發(fā)器實現(xiàn)兩個表的同步
目前,在本地測試成功。
假設(shè)本地的兩個數(shù)據(jù)庫a和b,a下有表table1(id, val) b下有表table2(id, val)
假設(shè)希望當(dāng)table1中數(shù)據(jù)更新,table2中數(shù)據(jù)同步更新。
代碼:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `a`.`觸發(fā)器名` BEFORE UPDATE
ON `a`.`table1`
FOR EACH ROW BEGIN
IF new.id!=old.id THEN
UPDATE `b`.`table2` SET `b`.`table2`.id=new.id WHERE `b`.`table2`.val=old.val;
END IF;
END$$
DELIMITER ;
網(wǎng)上找了很多代碼,在phpadmin中運行都不成功,總是語法錯誤,phpmyadmin也不能可視化建立觸發(fā)器,所以找了另一個mysql管理工具,SQLyog。這個工具比較好,java寫的,可以通過界面創(chuàng)建觸發(fā)器,然后再把代碼拷到phpmyadmin中運行,成功!
目前,在本地測試成功。
假設(shè)本地的兩個數(shù)據(jù)庫a和b,a下有表table1(id, val) b下有表table2(id, val)
假設(shè)希望當(dāng)table1中數(shù)據(jù)更新,table2中數(shù)據(jù)同步更新。
代碼:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `a`.`觸發(fā)器名` BEFORE UPDATE
ON `a`.`table1`
FOR EACH ROW BEGIN
IF new.id!=old.id THEN
UPDATE `b`.`table2` SET `b`.`table2`.id=new.id WHERE `b`.`table2`.val=old.val;
END IF;
END$$
DELIMITER ;
網(wǎng)上找了很多代碼,在phpadmin中運行都不成功,總是語法錯誤,phpmyadmin也不能可視化建立觸發(fā)器,所以找了另一個mysql管理工具,SQLyog。這個工具比較好,java寫的,可以通過界面創(chuàng)建觸發(fā)器,然后再把代碼拷到phpmyadmin中運行,成功!
相關(guān)文章
mysql could not be resolved: Name or service not known
今天查看mysql日志的時候發(fā)現(xiàn)[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known,原來是mysql DNS反解:skip-name-resolve的原因,屏蔽一下就可以了2015-08-08
MySQL?Replication中的并行復(fù)制示例詳解
MySQL在5.6版本之前,主從復(fù)制的從節(jié)點上有兩個線程,分別是I/O線程和SQL線程,今天通過本文給大家介紹MySQL?Replication中的并行復(fù)制示例詳解,感興趣的朋友一起看看吧2022-07-07
MySQL提示表不存在的解決error:1146:Table doesn‘t exist的原因和解決
在使用MySQL的過程中,有時會遇到“Table doesn't exist”(表不存在)的錯誤,錯誤代碼通常為1146,這個問題可能由多種原因引起,本文將幫助你診斷和解決這個問題,如果遇到同樣問題的小伙伴跟著小編一起來看看吧2024-12-12

