我有兩個表格:Ticket
和Cancel
(取消門票)。爲什麼這樣的觸發器不起作用?
我創建的觸發器,使得當車票被添加到Cancel
表,它成爲在Ticket
表(Client_id
套NULL
)遊離。
但是,必須有一個附加選項:
如果票據被添加到Cancel
表,門票是免費的(Client_id
已經在Ticket
表NULL
),那麼它不應該被添加到Cancel
表或導致錯誤。
下面的觸發器在購買時設置免費機票,但添加到表Cancel
時,即使機票是免費的,它仍會將票添加到表Cancel
。我想我應該添加一些約束或類似的東西。
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 and TICKET.TICKET_ID IS NOT NULL;
END;
從TRIGER的更新被解僱「之後INSERT ON取消」 –