我的 SQL 触发器更新前

My SQL Trigger Before Update

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

所以我试图在 table 上创建一个触发器,当员工被分配任务时 pick_date 会更新以显示这一点。如果日期字段为空,它只应更新日期字段。订单号、员工和订单_pick_date都在同一个table.

我有以下触发器,但我似乎无法将其设置为 运行。

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;

一个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 服务器语法),但我认为这就是您的意图。