如何使用触发器更新另一个数据库中的表?

时间:2017-06-03 18:43:30

标签: mysql triggers synchronization

我想更新另一个数据库中的另一个表,这是库存数量,当数量字段更新时,然后更新另一个表。

我有这个:

DELIMITER //
DROP TRIGGER IF EXISTS syncFromStockSys //

CREATE TRIGGER syncFromStockSys BEFORE UPDATE on db1.quantity

FOR EACH ROW BEGIN

    UPDATE TABLE db2.oc_product 
    SET  `quantity` = NEW.quantity 
    WHERE SKU = SKU;   //<<-----------
END //
DELIMITER ;

但是有一个sintax错误 我正在使用phpMyAdmin来完成这个。

这是错误:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法

     

靠近'TABLE db2.oc_product       SET quantity = NEW.quantity       SKU = NEW。在第5行

1 个答案:

答案 0 :(得分:0)

不要使用PHP myadmin进行任何认真的工作。给自己一个合适的mysql客户端。至于错误。您不应在触发器块

中包含分隔符//
DELIMITER //
DROP TRIGGER IF EXISTS syncFromStockSys //

CREATE TRIGGER syncFromStockSys BEFORE UPDATE on db1.quantity

FOR EACH ROW BEGIN

    UPDATE db2.oc_product 
    SET  `quantity` = NEW.quantity 
    WHERE SKU = SKU; 
END //
DELIMITER ;

你可能意味着

 WHERE SKU = NEW.SKU;