1
我在PostgreSQL的8.4工作,并写了一个触发功能,像这样:行不被删除后删除触发器运行
CREATE OR REPLACE FUNCTION otherschema.order_delete_log_procedure() RETURNS TRIGGER AS
$$
BEGIN
DELETE FROM otherschema.order_log AS thelog WHERE thelog.log_order_id=OLD.order_id;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER order_deletion_log_trigger BEFORE DELETE ON public.order FOR EACH ROW EXECUTE PROCEDURE
otherschema.order_delete_log_procedure();
我的问题是,触发器触发完美(触发器被删除日志行),但是应该从触发触发器的表中删除的行不会被删除(订单未被删除)。
如果我尝试手动删除订单行,它只是说没有行受到影响,并且没有错误。有什么想法吗?
谢谢!
我应该进一步调查。我现在觉得很愚蠢。谢谢 – user2525680
不要。我自己绊倒了它,而且我看到许多其他人也这样做。由于'NULL'对于DELETE来说似乎是一个合理的返回值(即新值是一个空行),情况变得更糟。只要坚持使用'AFTER'触发器就更安全了,除非你有充分的理由不这样做。 –