-topic -
我有一个名为ORDERLINE的表,它有多列。
另一个名为ORDERHEADER的表有一个名为Order_completed的列,当所有订单列都已完成时,该列将设置为系统日期。
如何使用触发器执行此操作?
我尝试的方式是
CREATE TRIGGER orderhascompleted
AFTER (all values in ORDERLINE has been completed)
BEGIN
INSERT INTO ORDERHEADER (Order_completed) VALUES (NOW())
我该怎么做?在C ++中,我会使用一个简单的if语句,但我不认为这在SQL中是可行的
答案 0 :(得分:0)
也许使用:NEW。[FIELD]在触发器中使用IF语句声明如下:
CREATE OR REPLACE TRIGGER [NAME] AFTER UPDATE
ON [TABLE]
FOR EACH ROW
REFERENCING OLD AS OLD NEW AS NEW
会做这个工作。
If语句可能如下所示
If (:OLD.FIELD IS NOT NULL OR :NEW.FIELD IS NOT NULL) AND ... THEN
UPDATE [TABLE]...
END IF;