2008年4月24日木曜日

PostgreSQL トリガー処理サンプル(plpgsql)

--プロシージャの作成
CREATE OR REPLACE FUNCTION delete_data()
RETURNS "trigger"
AS '
  DECLARE
    Cnt INT4;
  BEGIN
    Cnt := (SELECT COUNT(*) FROM table2 WHERE table2.id = OLD.id);
    IF (Cnt > 0) THEN
      DELETE FROM table2 WHERE table2.id = OLD.id;
    END IF;

    RETURN OLD;
  END;
'
LANGUAGE 'plpgsql';


--トリガーの作成(table1のレコードを削除した後に指定プロシージャを実行)
CREATE TRIGGER delete_data
after delete on table1
for each row
EXECUTE PROCEDURE delete_data();
 

0 件のコメント:

Google検索