带有2个表的MySQL触发器

时间:2014-01-11 20:49:08

标签: mysql sql triggers

我有2张桌子

第一

 ps_product (id_product, price)

第二

 ps_product_price (id_product, price, price_tax)

现在我要做的是设置TRIGGER:

DELIMITER $$
CREATE TRIGGER `after_ps_product_price_update`  
    BEFORE UPDATE ON `ps_product_price` 
      FOR EACH ROW  
    BEGIN
      UPDATE ps_product 
       SET price = NEW.price_tax -(NEW.price_tax * 0.1666666666666666666)
       WHERE id_product = NEW.id_product;  
    END

当ps_rpoduct_price TABLE,COLUMN(price_tax)更新后,更新TABLE ps_product,COLUMN(price)

这种方法很好,但是当我尝试做同样的事情时:

DELIMITER $$
CREATE TRIGGER `after_ps_product_update`  
    AFTER UPDATE ON `ps_product` 
      FOR EACH ROW  
    BEGIN
      UPDATE ps_product_price
       SET price_tax = (NEW.price * 1.2)
       WHERE id_product = NEW.id_product;  
    END

然后我收到错误:

  

无法更新存储函数/触发器中的表'ps_rpoduct',因为它已被调用此存储函数/触发器的语句使用

0 个答案:

没有答案