我有一个包含许多列的表,其中一列是 lastUpdate
列。
我正在为 Postgres 9.1 在 plpgsql 中编写一个触发器,它应该在对记录进行更新时为 lasUpdate
设置一个值。
挑战在于从该触发器中排除一些预定义的列;这意味着,更新那些特定列不应影响记录的 lastUpdate
值。
有什么建议吗?
最佳答案
在 PostgreSQL 中,您可以使用 OLD 访问以前的值。和新的使用新的。别名。 the docs中甚至有一个具体的例子满足您的需求:
CREATE TRIGGER check_update
BEFORE UPDATE ON accounts
FOR EACH ROW
WHEN (OLD.balance IS DISTINCT FROM NEW.balance)
EXECUTE PROCEDURE check_account_update();
关于PostgreSQL - 确定更新了哪些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044306/