SQL:当第一个数据库中的表更新时,如何在第二个数据库中自动更新表?

时间:2015-04-20 06:43:14

标签: mysql triggers automation

我的数据库db1db2在同一服务器上的两个数据库上都有表mytable

这两个表都包含完全相同的列。

对于Ex:

SNo  |  fname  |   lname  | Mobile | Status

表格中都有一个列名Status

如果在数据库Status中的表mytable中更新了列db1的值,那么我应该怎么做,那么列Status的值将在表{{中}自动更新1}}在数据库mytable

我不知道究竟是什么叫它。也许触发!

1 个答案:

答案 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 $$