mysql通過觸發器實現兩個表的同步
目前,在本地測試成功。
www.2cto.com
假設本地的兩個數據庫a和b,a下有表table1(id, val) b下有表table2(id, val)
假設希望當table1中數據更新,table2中數據同步更新。
代碼:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `a`.`觸發器名` 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 ;
網上找了很多代碼,在phpadmin中運行都不成功,總是語法錯誤,phpmyadmin也不能可視化建立觸發器,所以找了另一個mysql管理工具,SQLyog。這個工具比較好,java寫的,可以通過界面創建觸發器,然後再把代碼拷到phpmyadmin中運行,成功!
SQLyog下載地址:
http://www.webyog.com/en/downloads.php#sqlyog