#1442 - 无法更新表格' sale_price'在存储的函数/触发器中,因为它已被语句使用

时间:2013-07-19 13:16:40

标签: mysql

我想在表中插入新行之前更新同一个表。 我想将具有相同product_id的所有先前行的状态设置为0,然后插入状态为1的新行....请帮助。这是我的代码写的mysql ..

DROP TRIGGER IF EXISTS `priceStatusUpdate`//
CREATE TRIGGER `priceStatusUpdate` BEFORE INSERT ON `sale_price`
 FOR EACH ROW BEGIN
  UPDATE sale_price 
  SET status=0
  WHERE product_id=new.product_id;
END
//

2 个答案:

答案 0 :(得分:1)

改为使用存储过程:

DELIMITER $$
CREATE PROCEDURE procedureName (IN p_product_id)
BEGIN
UPDATE sale_price SET status = 0 WHERE product_id = p_product_id;
INSERT INTO sale_price (product_id) VALUES (p_product_id);
END $$
DELIMITER ;

然后用

调用它
CALL procedureName(1);

答案 1 :(得分:0)

DROP TRIGGER IF EXISTS `priceStatusUpdate`//
CREATE TRIGGER `priceStatusUpdate` BEFORE INSERT ON `sale_price`
FOR EACH ROW BEGIN
    SET NEW.status= 0;
END
相关问题