我需要在PL/SQL中編寫觸發器。當條件爲真時,我想要阻止插入。PL/SQL觸發器,以防止插入
CREATE OR REPLACE TRIGGER SafeRent AFTER INSERT ON Rent
FOR EACH ROW
DECLARE
BEGIN
IF :NEW.id_status IN (1,2) THEN
DELETE FROM Rent WHERE id_rent = :NEW.id_rent;
END IF;
END;
Expationation to the code:if id_status equals 1 or 2我想要插入NOT。
這是我寫的觸發器。如果條件爲真,它會刪除(我想是的,我沒有測試過)插入後的記錄。
有什麼辦法可以在插入前預防它嗎?
我正在考慮在'BEFORE INSERT'類型觸發器中上升的異常,這是一個很好的解決方案嗎?
PS:它必須是觸發器,我知道它可以實現爲檢查約束。
你說得對與Raise_application,只是阿里納斯,你可以用之前進行發射,或插入後。雙向工作。 –
你從哪裏得到'-20343'? –
@Mthethew這是一個示例錯誤代碼。本文向您展示有關該更多信息:https://docs.oracle.com/cloud/latest/db112/LNPLS/errors.htm#LNPLS99960,位於「RAISE_APPLICATION_ERROR過程」一節下。我將它編輯爲一些不太完整的randdom。 :-) – Tenzin