無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

CREATE EVENT TRIGGER

名前

CREATE EVENT TRIGGER -- 新しいイベントトリガを定義する

概要

CREATE EVENT TRIGGER 

name


  ON 

event


  [ WHEN 

filter_variable

 IN (filter_value [, ... ]) [ AND ... ] ]
  EXECUTE PROCEDURE 

function_name

()

説明

CREATE EVENT TRIGGER は新しいイベントトリガを作成します。 指定されたイベントが発生した時は常に、トリガに関連する WHEN 条件がもしあればそれを満たす場合、トリガ関数が実行されます。 イベントトリガの一般的な紹介については、 第37章 を参照してください。 イベントトリガを作成したユーザがその所有者となります。

パラメータ

name

新しいトリガに付ける名前です。 この名前はデータベース内で一意でなければなりません。

event

指定関数を呼び出すきっかけとなるイベントの名前です。 イベント名の詳細については 項37.1 を参照してください。

filter_variable

イベントをフィルタするために使用される変数の名前です。 これにより、サポートしている状況の一部に対してのみにトリガの発行を制限することができます。 現在 filter_variable でサポートされているものは TAG のみです。

filter_value

どこでトリガを発行すべきかについて、関連する filter_variable 用の値のリストです。 TAG の場合、これはコマンドタグ(例えば 'DROP FUNCTION' )のリストを意味します。

function_name

引数を取らず event_trigger 型を返すと宣言された、ユーザが提供する関数です。

注釈

スーパーユーザのみがイベントトリガを作成することができます。

シングルユーザモード( postgres 参照)ではイベントトリガは無効です。 エラーのあるイベントトリガがデータベースを無効にし、トリガを削除することができない状態になった場合は、シングルユーザモードで再起動してください。 削除できるようになります。

任意の DDL コマンドの実行を禁じます。

CREATE OR REPLACE FUNCTION abort_any_command()
  RETURNS event_trigger
 LANGUAGE plpgsql
  AS $$
BEGIN
  RAISE EXCEPTION 'command % is disabled', tg_tag;
END;
$$;

CREATE EVENT TRIGGER abort_ddl ON ddl_command_start
   EXECUTE PROCEDURE abort_any_command();

互換性

標準SQLには CREATE EVENT TRIGGER 文はありません。

関連項目

ALTER EVENT TRIGGER , DROP EVENT TRIGGER , CREATE FUNCTION

powered by SEO.CUG.NET