この記事では、

ALTER TRIGGER`と

ALTER TABLE`を使ってトリガを有効/無効にする方法を説明します。

-- enable/disable a trigger

ALTER TRIGGERトリガー名ENABLE; ALTER TRIGGER trigger__name無効です。

-- enable/disable all triggers for a specific table
ALTER TABLE table__name ENABLE ALL TRIGGERS;
ALTER TABLE table__name DISABLE ALL TRIGGERS;

1.テーブルトリガ

1.1テーブルと2つのトリガを作成します。

テストデータ

--Creating test__data table.

CREATE TABLE test__data
(
  ID番号(5)主キー、
  test__result number(5)
);

trg

test

a

SET SERVEROUTPUT ON;

trg__test__aを作成または置換する前に各行に対してtest__dataを更新または削除または挿入する

ベギン

-- business logic will be here to perform on any insert/update/delete
  dbms__output.put__line('trg__test__a Trigger called.');

END;

trg

test

b

SET SERVEROUTPUT ON;

trg__test__bを作成または置換する前に各行のtest__dataを更新または削除または挿入する

ベギン

dbms__output.put__line( 'trg__test__bトリガが呼び出されました。');
  
終わり;

トリガーを作成すると、デフォルトで `ENABLED`になります。

SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERS( 'TRG__TEST__A'、 'TRG__TEST__B')内のupper(TRIGGER__NAME);

[cols = “、”、options = “header”、]| ====================
| TRIGGER

NAME | STATUS
| trg

test

a | ENABLED
| trg

test__b | ENABLED
| ====================

2. ALTER TRIGGER – トリガーを有効または無効にします。

2.1トリガを無効にする例

trg

test

a

ALTER TRIGGER trg__test__a無効です。

2.2トリガの状態を確認します。

SELECT TRIGGER__NAME、USER__TRIGGERSからのステータス、upper(TRIGGER__NAME)= 'TRG__TEST__A';

[cols = “、”、options = “header”、]| ====================
| TRIGGER

NAME | STATUS
| TRG

TEST__A | DISABLED
| ====================

。トリガが参照するオブジェクトは使用できません。
。大量のデータロードを実行し、迅速に処理を進める必要があります
トリガを発射することなく。
。トリガーが適用されるテーブルにデータをロードしています。

2.3無効なトリガを有効にする例

trg

test

a

ALTER TRIGGER trg__test__a ENABLE;

2.4トリガ状態を再度確認してください。

SELECT TRIGGER__NAME、USER__TRIGGERSからのステータス、upper(TRIGGER__NAME)= 'TRG__TEST__A';

[cols = “、”、options = “header”、]| ====================
| TRIGGER

NAME | STATUS
| TRG

TEST__A | ENABLED
| ====================

3. ALTER TABLE – すべてのトリガーを有効または無効にします。

3.1特定のテーブル `test__data`のすべてのトリガを無効にする例

ALTER TABLE test__dataすべてのトリガーを無効にします。

3.2トリガーの状態を確認します。

SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERSここで、upper(TRIGGER__NAME)IN( 'TRG__TEST__A'、 'TRG__TEST__B');

[cols = “、”、options = “header”、]| ====================
| TRIGGER

NAME | STATUS
| TRG

TEST

A | DISABLED
| TRG

TEST__B | DISABLED
| ====================

3.3特定のテーブル `test__data`のすべてのトリガを有効にする例

ALTER TABLE test__dataすべてのトリガーを有効にします。

3.4トリガステータスを再度確認します。

SELECT TRIGGER__NAME、STATUS FROM USER__TRIGGERSここで、upper(TRIGGER__NAME)IN( 'TRG__TEST__A'、 'TRG__TEST__B');

[cols = “、”、options = “header”、]| ====================
| TRIGGER

NAME | STATUS
| TRG

TEST

A | ENABLED
| TRG

TEST__B |有効
| ====================

===参考文献