【发布时间】:2014-06-08 03:14:49
【问题描述】:
如何在POSTGRESQL; 中插入或更新后应用更新我有一个表,其中有一个字段lastupdate; 我希望在更新行或插入行时设置该字段。
我试过这个触发器,但它不起作用!救命!!
CREATE OR REPLACE FUNCTION fn_update_profile()
RETURNS TRIGGER AS $update_profile$
BEGIN
IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE' ) THEN
UPDATE profile SET lastupdate=now() where oid=OLD.oid;
RETURN NULL;
ELSEIF (TG_OP = 'DELETE') THEN
RETURN NULL;
END IF;
RETURN NULL; -- result is ignored since this is an AFTER trigger
END;
$update_profile$ LANGUAGE plpgsql;
【问题讨论】:
-
您想要做的与手册中给出的示例大致相同。你看过关于 pl/pgsql 触发器的文档吗?
-
是的,但我只是意识到我的触发器是递归的,这就是它不起作用的原因。
-
...这就是为什么手册显示使用修改 NEW 的 BEFORE 触发器的原因。
标签: postgresql triggers sql-update