我有这样的触发器(当向表取消时添加一些票证,然后在票证表中设置此票证免费)。但是如果这张票已经免费,那么没有必要取消它。要添加什么来做这样的逻辑(当我将免费票证添加到表取消然后它会导致错误)?
CREATE OR REPLACE TRIGGER CANCEL_TICKET
AFTER INSERT ON CANCEL
FOR EACH ROW
BEGIN
UPDATE TICKET
SET TICKET.CLIENT_ID = NULL
WHERE TICKET.TICKET_ID = :NEW.TICKET_ID;
END;
答案 0 :(得分:0)
如果我理解正确:
你可以使用这样的IF语句:
IF (SELECT TICKET.CLIENT_ID FROM TICKET
WHERE TICKET.TICKET_ID = :NEW_TICKET_ID) IS NOT NULL THEN
UPDATE TICKET
SET TICKET.CLIENT_ID = NULL
WHERE TICKET.TICKET_ID = :NEW.TICKET_ID;
END IF;