我正在研究我的第一个触发器。当我在表上执行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的结构未知但 –
然后将触发器定义为'为每一行'。 –
我刚刚编辑了相应的答案。 –