我正在研究我的第一個觸發器。當我在表上執行INSERT時,我想有條件地從其他表中刪除行。PL/PgSQL在插入時創建條件觸發器
這裏是一個觸發器:
CREATE OR REPLACE FUNCTION clear_seen_by()
RETURNS trigger AS
$BODY$
BEGIN
IF (OLD.popup = '1') THEN
DELETE FROM news_seen_by;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
援引:
CREATE TRIGGER clear_seen_by
AFTER INSERT
ON news
FOR EACH STATEMENT
EXECUTE PROCEDURE clear_seen_by();
作爲一個錯誤我看到新的或舊(如果我motify觸發)未聲明/未知。哪裏有問題?
不,我嘗試了兩個 - 與OLD和NEW相同的錯誤:SQLSTATE [55000]:對象不處於先決條件狀態:7〜記錄NEW/OLD的結構未知但 –
然後將觸發器定義爲'爲每一行'。 –
我剛剛編輯了相應的答案。 –