トリガーは、OceanBaseデータベースで提供されている機能であり、ストアドプロシージャや関数と同様に、宣言、実行、例外処理のプロセスを含むPLブロックです。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
トリガーは特定のイベントに基づいて実行され、イベントの前または後にトリガーが発生するかどうか、およびトリガーが単一のイベントに対して発生するか、イベントの実行によって影響を受ける行データに対して発生するかを指定できます。
トリガーは独立したオブジェクトであり、特定のイベントが発生すると自動的に暗黙的に実行されます。また、トリガーはパラメータを受け取ることができません。ここでいうイベントとは、データベースのテーブルに対するINSERT、UPDATE、DELETE操作を指します。
注意
OceanBaseデータベースV2.2.7xバージョン及びそれ以前は、テーブル上の行レベルトリガーのみをサポートしています。
シンプルなトリガーの実行タイミングは以下の4種類があります:
イベント実行前(ステートメントレベルの
BEFOREトリガー)イベント実行後(ステートメントレベルの
AFTERトリガー)各行がイベントの実行によって影響を受ける前(行レベルの
BEFOREトリガー)各行がイベントの実行によって影響を受けた後(行レベルの
AFTERトリガー)
1つのDMLステートメントが複数のシンプルなトリガーをトリガーする可能性があります。トリガーの実行順序は以下のとおりです:ステートメントレベルBEFOREトリガー -> 行レベルBEFOREトリガー -> 行レベルAFTERトリガー -> ステートメントレベルAFTERトリガー。
同一タイプのトリガーの実行順序は不確定であり、現在トリガーの実行順序を指定することはサポートされていません。