如果更新包含对特定列的更改,是否可以让postresql限制/阻止对特定记录的更新?
如何实施。触发/约束?实现这一目标的最有效方法是什么?
我使用的是9.1版
答案 0 :(得分:19)
最简单的方法是创建BEFORE UPDATE
触发器,以便比较OLD
和NEW
行以及RAISE EXCEPTION
,如果禁止对该行进行更改。
答案 1 :(得分:6)
不,但写起来应该是微不足道的。
只需设置一个BEFORE UPDATE
触发器,将旧字段与新字段进行比较,如果它们不同则执行RAISE ERROR
。
pgSQL文档有一些如何编写触发函数的例子。