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 ;
答案 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即可模拟问题。