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

How do I get the primary key(s) of a table from Postgres via plpgsql? をご覧ください。その答えはあなたを助けることができるはずです。

于 2009-12-31T09:37:36.017 に答える
1

PL/pgSQL では動的 SQL を使用できないことに注意してください。そのためには、あまりにも強く型付けされた言語です。PL/Perl では、列のハッシュにアクセスし、通常の Perl アクセサーを使用してチェックすることができます。(PL/Python も動作しますが、残念ながら信頼できない言語です。PL/Tcl も動作します。)

8.4EXECUTE 'something' USING NEWでは、 を使用できます。

于 2010-01-02T22:20:17.243 に答える