是否可以使用任何postgresql dml操作嵌入/设置一些元数据(注释),例如更新?
案例研究:假设我有表foo
和bar
,现在我在表foo
上有一个触发器,它只拒绝/拒绝bas
和{{1}的任何更新操作列。
现在我在meh
表格上有一个触发器,我想更新bar
表的bas
和meh
列。
我正在考虑在foo
触发器中检查来自已触发事件的元数据/信号,以便拒绝或接受更新,可能类似于foo
的情况。例如,为事件标记事件触发器来自朋友if (<<has_specific_meta_data>>) then /*let update*/...
触发器。
除了我正在考虑的元数据之外,还有其他解决办法吗?
pgsql 9.3_x64@a_linux_guy
感谢。
答案 0 :(得分:0)
不,没有。你可以(ab)使用GUC,但它很脆弱,并且很可能允许你不打算采取行动,因为它有效地设置了一个全局变量。
在这种特定情况下,听起来你应该能够通过权限来做到这一点。不要将UPDATE
或foo(bas)
上的foo(meh)
授予运行查询的用户。以{em> 具有相应更新权限的用户在bar
SECURITY DEFINER
上触发。