トリガーは、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トリガー。
同一タイプのトリガーの実行順序は不確定であり、現在トリガーの実行順序を指定することはサポートされていません。