[Oracle]トリガーの実行順序を設定する方法
2020/01/09
FOLLOWS句を使用して実行順序を設定する
1つの表に対して同レベル(タイミング)のトリガーを複数作成することはできますが、実行順序は保証されていません。
実行順序に依存するようなトリガーを作成する場合は、FOLLOWS句を使用して実行順序を設定します。
トリガーの作成方法については、過去記事を参照してください。
トリガーの実行順序
タイミングが異なる2つ以上のトリガーを1つの表の作成した場合、トリガーは次の順序で実行されます。
BEFORE STATEMENTトリガー(BEFORE 文トリガー) BEFORE EACH ROWトリガー (BEFORE 行トリガー) AFTER EACH ROWトリガー (AFTER 行トリガー) AFTER STATEMENTトリガー(AFTER 文トリガー)
ここに、タイミングの同じBEFORE 行トリガーを追加作成した場合、トリガーはどちらかの順序で実行されます。
BEFORE STATEMENTトリガー(BEFORE 文トリガー) BEFORE EACH ROWトリガー (BEFORE 行トリガー) BEFORE EACH ROWトリガー (BEFORE 行トリガー) 追加分 AFTER EACH ROWトリガー (AFTER 行トリガー) AFTER STATEMENTトリガー(AFTER 文トリガー)
または、
BEFORE STATEMENTトリガー(BEFORE 文トリガー) BEFORE EACH ROWトリガー (BEFORE 行トリガー) 追加分 BEFORE EACH ROWトリガー (BEFORE 行トリガー) AFTER EACH ROWトリガー (AFTER 行トリガー) AFTER STATEMENTトリガー(AFTER 文トリガー)
FOLLOWS句で実行順序を設定
トリガー作成時にFOLLOWS句を使用すると、指定した既存トリガーの後に起動するトリガーを作成することができます。
CREATE [OR REPLACE] TRIGGER 作成トリガー名 AFTER UPDATE ON 表名 FOR EACH ROW FOLLOWS 既存トリガー名
Google AdSense PC
Google AdSense PC
関連記事
-
-
[SQLServer]日付文字列 + 時刻文字列をDATETIME型に変換する方法
SQLServerで日付文字列 + 時刻文字列をDATETIME型に変換する方法 日付と時刻を別のカラムに格納している場合に日時データとして扱いたい場合は CO …
-
-
[Oracle]インストールに失敗する原因と対処方法
Oracleインストールエラー時の確認事項 OracleのデータベースやクライアントをWindowsへインストール中に インストーラが途中で落ちたり、エラーが発 …
-
-
[SQL Server]IDENTITYの値を初期化する
ID値の初期化(リセット)方法 IDENTITYプロパティを設定した列のID値を初期化(リセット)する方法を記載します。 現在のID値を確認する ID値を確認す …
-
-
[Oracle]Oracle Clientのアンインストール方法
Oracle Clientをレジストリを含め完全に削除することがありましたので、この記事では削除手順を記載します。 削除手順ではレジストリを変更しますので十分注 …
-
-
[Database]データベースのバージョン/エディションを確認する方法
OracleとSQLServerのバージョン/エディションを確認 Oracle SELECT * FROM V$VERSION SQLServer SELEC …
-
-
[SQL Server]再帰SQLで集計する
WITH(共通テーブル式)を使って集計する WITH句とは 共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、CR …
-
-
[Oracle]WEBサイトやWEB APIをOracleから呼び出す方法
WEBリクエストを送信してレスポンスを表示する OracleからWEBサイトやWEB APIなどのネットワークサービスを呼び出すには、UTL_HTTPパッケージ …
-
-
Oracle12cでユーザを作成する方法
SQLコマンドを使用したユーザ作成 Oracle12cからマルチテナント・アーキテクチャが採用されており、以前までの手順ではユーザが作成できません。 ここではP …
-
-
[Oracle]端数処理、丸めの方法
ORACLEで数値の端数処理、数値丸めをする 数値を四捨五入する場合は、ROUND関数 数値を切り捨てる場合は、TRUNC関数 各関数の第2引数の値で、小数部、 …
-
-
[SQL Server]除算時の注意点
SQLServerで除算結果が小数になる場合 たとえば、1100グラムをキロに換算する場合は「1100 / 1000」で計算すれば「1.1kg」と求められるが …