0
我想知道如何編寫一個觸發器,它只會在你想插入的值不存在時才被激活,並且我需要在它添加之前在另一個表中創建一個引用。我一直在爲這個當前的代碼得到一個錯誤。如何僅在表中不存在值時激活SQL觸發器?
CREATE OR REPLACE TRIGGER CreateConversation
BEFORE INSERT ON Messages
FOR EACH ROW
WHEN (NOT EXISTS (select convID FROM Conversation where new.convID = convID))
BEGIN
INSERT INTO Conversation (convID, msgID) VALUES(:new.convID, :new.msgID);
END;
/
有什麼建議嗎?
謝謝你的回覆!不幸的是,我得到一個ORA-04098錯誤 – Kaska
該錯誤似乎來自「INSERT INTO對話行.....」但我不知道我輸入錯誤。在另一個觸發器中,我有一個表的UPDATE語句,它工作正常。當表格對話改變時,我沒有任何觸發器。 – Kaska
以顯而易見的方式開始:在DBA_TRIGGERS中查找無效的兩個表「MESSAGES」或「CONVERSATION」中的任何觸發器。它不一定是你已經提到的兩個觸發器之一。 –