指定pgsql dml操作的元数据

时间:2014-12-01 00:01:36

标签: postgresql

是否可以使用任何postgresql dml操作嵌入/设置一些元数据(注释),例如更新?

案例研究:假设我有表foobar,现在我在表foo上有一个触发器,它只拒绝/拒绝bas和{{1}的任何更新操作列。

现在我在meh表格上有一个触发器,我想更新bar表的basmeh列。

我正在考虑在foo触发器中检查来自已触发事件的元数据/信号,以便拒绝或接受更新,可能类似于foo的情况。例如,为事件标记事件触发器来自朋友if (<<has_specific_meta_data>>) then /*let update*/...触发器。

除了我正在考虑的元数据之外,还有其他解决办法吗?

pgsql 9.3_x64@a_linux_guy


感谢。

1 个答案:

答案 0 :(得分:0)

不,没有。你可以(ab)使用GUC,但它很脆弱,并且很可能允许你不打算采取行动,因为它有效地设置了一个全局变量。

在这种特定情况下,听起来你应该能够通过权限来做到这一点。不要将UPDATEfoo(bas)上的foo(meh)授予运行查询的用户。以{em> 具有相应更新权限的用户在bar SECURITY DEFINER上触发。