| PostgreSQL 9.3.2文書 | ||||
|---|---|---|---|---|
| 前のページ | 上に戻る | 第 9章関数と演算子 | 次のページ | |
現時点でPostgreSQLは一つの組み込みイベントトリガー支援関数、pg_event_trigger_dropped_objectsを提供しています。
関数pg_event_trigger_dropped_objectsは、それが呼ばれたsql_dropイベントのコマンドにより削除された全てのオブジェクトのリストを返します。
そのほかいかなる状況で呼ばれた場合、pg_event_trigger_dropped_objectsはエラーを生じさせます。
pg_event_trigger_dropped_objectsは以下の列を返します。
| 名前 | 型 | 説明 |
|---|---|---|
| classid | Oid | オブジェクトが所属するカタログのOID |
| objid | Oid | カタログ内に所有するオブジェクトのOID |
| objsubid | int32 | (列の属性番号のような)オブジェクトの副id |
| object_type | text | オブジェクトの型 |
| schema_name | text | オブジェクトが所属しているスキーマの名前 |
| object_name | text | スキーマと名前の組み合わせがオブジェクトに対しる一意の識別子として使用可能な場合のオブジェクトの名前。 そうでないときはNULL。引用符は適用されず、名前は決してスキーマで権限を与えられません。 |
| object_identity | text | オブジェクト識別のテキスト表現で、スキーマで権限を与えられています。権限のなかにあるそれぞれ全ての識別子は必要であれば引用符で括られます。 |
関数pg_event_trigger_dropped_objectsは以下のようにイベントトリガーとして使用可能です。
CREATE FUNCTION test_event_trigger_for_drops()
RETURNS event_trigger LANGUAGE plpgsql AS $$
DECLARE
obj record;
BEGIN
FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects()
LOOP
RAISE NOTICE '% dropped object: % %.% %',
tg_tag,
obj.object_type,
obj.schema_name,
obj.object_name,
obj.object_identity;
END LOOP;
END
$$;
CREATE EVENT TRIGGER test_event_trigger_for_drops
ON sql_drop
EXECUTE PROCEDURE test_event_trigger_for_drops();
イベントトリガーについての詳細は第37章を参照してください。