オラクルトリガーを作成する方法と使用方法

Oracle トリガーを作成する構文は以下のとおりです。

CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} {event(s)}
ON table_name
[REFERENCING OLD AS old NEW AS new]
[FOR EACH ROW]
[WHEN (condition)]
DECLARE
   -- 声明变量
BEGIN
   -- 执行逻辑
EXCEPTION
   -- 异常处理
END;

ここでは、キーワードを次のように定義します。

  1. CREATE OR REPLACE: トリガーが既に存在する場合は、以前のトリガーを置換します。
  2. トリガー名
  3. トリガーの実行タイミングで、操作の前、後、代わりに実行することを表します。
  4. トリガーのイベントには、INSERT/UPDATE/DELETEなどが含まれます。
  5. trigger 対象のテーブル名。
  6. Trigger 内で古い値と新しい値のエイリアスを参照します。
  7. 各行について: トリガーがデータの各行に対して実行されることを示します。
  8. WHEN(条件):トリガーの条件。条件が満たされた場合のみトリガーします。
  9. トリガーで使用される変数を宣言する。
  10. トリガーの実行ロジック
  11. トリガーの例外処理のロジック。

データ挿入時にトリガーを作成する例を次に示します。

CREATE OR REPLACE TRIGGER insert_trigger
BEFORE INSERT
ON employees
FOR EACH ROW
BEGIN
   -- 执行逻辑,如插入当前时间
   :NEW.insert_date := SYSDATE;
END;

トリガーを利用すれば、関連するテーブルだけで処理するだけでよい。例えば、上記の例のデータ挿入は次のようにできる。

INSERT INTO employees (employee_id, first_name, last_name, hire_date) 
VALUES (1, 'John', 'Doe', SYSDATE);

挿入が完了するとトリガーが自動的に関連ロジックを実行し、現在の時刻をinsert_dateフィールドに挿入します。

トリガーの使用は注意深く行う必要があります。トリガーが多すぎたり複雑すぎると、データベースのパフォーマンスに影響が出ることがあります。

bannerAds