我需要创建一个在每次UPDATE和INSERT操作之后触发的函数,并检查执行该操作的表的关键字段与某些条件。
函数(和触发器)需要是通用函数,它不应该使用硬编码的表名/字段名。
我遇到了需要访问表名及其架构部分的部分 - 检查哪些字段是PRIMARY KEY的一部分。
答案 0 :(得分:2)
获取第一个答案中已发布的主键信息后,您可以检查http://github.com/fgp/pg_record_inspect中的代码,以便在PL / pgSQL中动态获取记录字段值。
答案 1 :(得分:1)
答案 2 :(得分:1)
请注意,您不能在PL / pgSQL中使用动态SQL;它的类型太强烈了。 PL / Perl你会有更多的运气,你可以在其上访问列的哈希并使用常规的Perl访问器来检查它们。 (PL / Python也可以,但遗憾的是这只是一种不受信任的语言.PL / Tcl也可以。)
在8.4中,您可以使用EXECUTE 'something' USING NEW
,在某些情况下可以使用{{1}}。