0

我需要创建一个在每次 UPDATE 和 INSERT 操作后触发的函数,并检查在某些条件下执行操作的表的关键字段。

该函数(和触发器)需要是一个通用的,它不应该有硬编码的表名/字段名。

我被困在需要访问表名及其模式部分的部分 - 检查哪些字段是 PRIMARY KEY 的一部分。

4

3 回答 3

2

在获得第一个答案中已经发布的主键信息后,您可以检查http://github.com/fgp/pg_record_inspect中的代码以在 PL/pgSQL 中动态获取记录字段值。

于 2010-06-24T01:21:42.490 回答
1

看看如何通过 plpgsql 从 Postgres 获取表的主键?那个答案应该可以帮助你。

于 2009-12-31T09:37:36.017 回答
1

注意你不能在 PL/pgSQL 中使用动态 SQL;它是一种过于强类型的语言。使用 PL/Perl 会更幸运,您可以在其中访问列的散列并使用常规 Perl 访问器来检查它们。(PL/Python 也可以,但遗憾的是,这只是一种不受信任的语言。PL/Tcl 也可以。)

在 8.4 中,您可以使用EXECUTE 'something' USING NEW,在某些情况下可以完成这项工作。

于 2010-01-02T22:20:17.243 回答