トリガーを作成する

Pocket

【概要】
Oracleでは、データベースの変更をロールバックまたは取り消すために使用する情報を作成して管理します。これらの情報は、主にコミットされる前のトランザクションの処理レコードから構成されます。
これらのレコードを総称してUNDOと呼びます。
初期化パラメータで、使用するデータファイル、データの保存期間を変更することができる
【SQL文】
/*
|| ■トリガーを作成する
||
|| 【パラメータの説明】
|| TRRIGER_NAME :トリガー名
|| TABLE_NAME :表名
|| COL1 :列名
|| 【オプションの説明】
|| OR REPLACE :同名のトリガーが既に存在した時でも、構わず上書きする場合に指定する
|| BEFORE :データが操作される前にトリガーを起動する
|| または
|| AFTER :データが操作された後にトリガーを起動する
|| または
|| INSTEAD OF :データが操作されるSQLが実行された時、そのSQLは実行せずにトリガーだけを起動する
|| FOR EACH ROW :複数の行のデータが操作された場合、
||   この指定があると、|| 各行ごとにトリガーを起動する
||   この指定が無いと複数行のデータが操作されるSQLが発行されても1回しかトリガーは起動されない
|| BEGIN~END :トリガーが起動された時の処理を記す
*/
CREATE OR REPLACE trigger_name
before insert update delete on table_name FOR EACH ROW
BEGIN
if inserting then
update table_name set col1 = col1 + 1;
elsif updating then
update table_name set col1 = col1 + 1;
else
update table_name set col1 = col1 + 1;
end if;
END
;

以上です (^^♪