MySQL触发器当项目数量为0时,如何使用current_timestamp更新finished_date

时间:2017-12-28 07:57:55

标签: mysql triggers

MySQL触发当项目数量为0时,如何使用current_timestamp更新项目表中的finished_date。

我尝试过以下触发器,但工作不正常。请帮助我

DELIMITER $$
CREATE TRIGGER `quantityTrigger` AFTER change ON `items.finished` FOR EACH ROW BEGIN
UPDATE items i
IF(i.quantity = 0) THEN
SET i.finished_date= CURRENT_TIMESTAMP(Date)
 WHERE i.item_id=NEW.item_id;
  END IF;
END
$$
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

如果您正在处理同一个表本身,则无需使用Update命令在此UPDATE ON中执行。

这样做:

DELIMITER $$
CREATE TRIGGER quantityTrigger
BEFORE UPDATE ON items FOR EACH ROW
begin

  IF(new.quantity = 0) THEN
    new.finished_date = now();
  END IF;

END;
$$
DELIMITER ;

只需更新BEFORE UPDATE ON或AFTER UPDATE ON即可模拟问题。