ALTER TRIGGER

データベース・トリガーの有効化、無効化、名前の変更またはコンパイルを行う。

なお、ALTER TRIGGER 文でデータベース・トリガーの処理を変更することはできない。データベース・トリガーの処理を変更するには、CREATE OR REPLACE TRIGGER 文を使用する。

ALTER TRIGGER [schema.]trigger { ENABLE | DISABLE }
ALTER TRIGGER [schema.]trigger RENAME TO new_name
ALTER TRIGGER [schema.]trigger COMPILE [ DEBUG ] [ REUSE SETTINGS ]
schema
有効化、無効化、名前の変更またはコンパイルを行うデータベース・トリガーが含まれるスキーマ名を指定する。自分のスキーマに含まれるデータベース・トリガーの場合は、スキーマ名の指定を省略できる。
trigger
有効化、無効化、名前の変更またはコンパイルを行うデータベース・トリガーの名前を指定する。
ENABLE
データベース・トリガーを有効化する。
SQL> ALTER TRIGGER trigger01 ENABLE;
DISABLE
データベース・トリガーを無効化する。
SQL> ALTER TRIGGER trigger01 DISABLE;
RENAME TO
データベース・トリガーの名前を変更する。
SQL> ALTER TRIGGER trigger01 RENAME TO trigger02;
new_name
変更後のデータベース・トリガー名を指定する。
COMPILE
データベース・トリガーをコンパイルする。
SQL> ALTER TRIGGER trigger01 COMPILE;
DEBUG
PL/SQLデバッガで使用するためのコードを生成して格納する。
SQL> ALTER TRIGGER trigger01 COMPILE DEBUG;
REUSE SETTINGS
Oracleによってコンパイラ・スイッチ設定が削除および再取得されないようにする。
SQL> ALTER TRIGGER trigger01 COMPILE REUSE SETTINGS;

権限

自分のスキーマ内のトリガーを有効化、無効化、名前の変更またはコンパイルをする場合、権限は必要ない。

任意のスキーマ内のトリガーを有効化、無効化、名前の変更またはコンパイルをする場合、ALTER ANY TRIGGER システム権限が必要である。

また、DATABASEに対するトリガーを変更するには、データベース・イベントに対する ADMINISTER システム権限が必要である。

PostgreSQL

PostgreSQL でも ALTER TRIGGER 文でトリガ定義を変更することができる。

ALTER TRIGGER name ON table_name RENAME TO new_name
ALTER TRIGGER name ON table_name [ NO ] DEPENDS ON EXTENSION extension_name
name
変更の対象となる既存のトリガの名前
table_name
このトリガで処理されるテーブルの名前
new_name
トリガの新しい名前
extension_name
トリガが依存する拡張の名前

関連記事

CREATE TRIGGER

DROP TRIGGER

ALL_TRIGGERS

DBA_TRIGGERS

USER_TRIGGERS

参考文献

The PostgreSQL Global Development Group 2022. ALTER TRIGGER. PostgreSQL 15.0 Document

Microsoft 2023. ALTER TRIGGER (Transact-SQL)