更新前的SQL触发器

时间:2015-04-30 18:20:34

标签: mysql sql triggers

如果此问题已被问过一百万次,我道歉!

因此,当我为员工分配了一个更新pick_date以显示此任务的任务时,我正在尝试在表上创建一个触发器。它只应更新日期字段,如果它为null。订单号,employee和order_pick_date都在同一个表中。

我有以下触发器,但我似乎无法让它运行。

CREATE TRIGGER pickDate BEFORE UPDATE
ON order_master
FOR EACH ROW BEGIN
UPDATE order_master SET NEW.order_pick_date = IFNULL(SYSDATE(),) WHERE  order_master.order_no = old.order_no
END;

1 个答案:

答案 0 :(得分:0)

before update触发器很好。你只是不想做update。只需在new记录上设置值:

CREATE TRIGGER pickDate BEFORE UPDATE
ON order_master
FOR EACH ROW BEGIN
    SET NEW.order_pick_date = COALESCE(old.order_pick_date, now()) ;
END;

还有一些其他问题(例如getdate()是SQL Server语法),但我认为这是你想要的。