-1

ストアドプロシージャについては何も知りません。しかし、テーブルのブール列の値がfalseからtrueに変更されたときに、更新sqlを実行する必要があります。誰かがそれを提供することができればそれは大いにありがたいです。

前もって感謝します

4

1 に答える 1

2

これがテストテーブルです

CREATE TABLE test20120524
(
  id integer NOT NULL,
  bool boolean,
  comment_by_trigger text,
  CONSTRAINT pk_test20120524 PRIMARY KEY (id)
)
WITH (
  OIDS=TRUE
);

これはサンプルのトリガー関数です。OLDおよびNEWは、更新された行を意味する事前に宣言された変数です。

create or replace function test1() returns opaque as
'
declare
    -- some variables
begin
    if OLD.bool = false and NEW.bool = true then
        NEW.comment_by_trigger = ''affected by trigger'';
    end if;
    return NEW;
end;
' language 'plpgsql';

次に、トリガーを作成します。

CREATE TRIGGER test2
  BEFORE UPDATE
  ON test20120524
  FOR EACH ROW
  EXECUTE PROCEDURE test1();

ストアドプロシージャはそれほど難しくありません。PostgreSQLの公式ドキュメントで簡単に学ぶことができます:http ://www.postgresql.org/docs/9.1/interactive/index.html

見る

  • 36..トリガー
  • 39 .. PL / pgSQL-SQL手続き型言語(特に39.9トリガープロシージャ)
于 2012-05-24T02:23:31.590 に答える