Oracle 10gの「前」トリガーと「後」トリガーの違いを例を挙げて説明できますか?
まず、triggerを定義することから答えを始めます。atriggerは、行が追加、変更、または削除されたときに実行されるストアドプロシージャです。
トリガーは、アクションが実行される前に[〜#〜] [〜#〜]、または[〜#〜 ] after [〜#〜]アクションが実行されます。
BEFORE
トリガーは通常、変更を受け入れる前に検証を行う必要がある場合に使用されます。これらは、データベースに変更が加えられる前に実行されます。銀行のデータベースを実行しているとしましょう。テーブルaccounts
とテーブルtransactions
があります。ユーザーが自分のアカウントから引き出しを行う場合は、ユーザーが自分のアカウントに引き出しに十分なクレジットを持っていることを確認する必要があります。 BEFORE
トリガーはそれを可能にし、transactions
のバランスが十分でない場合に行がaccounts
に挿入されるのを防ぎます。
AFTER
トリガーは通常、変更のために別のテーブルで情報を更新する必要がある場合に使用されます。これらは、データベースに変更が加えられた後に実行されます(必ずしもコミットされている必要はありません)。後ろの例に戻りましょう。トランザクションが成功したら、balance
テーブルのaccounts
を更新する必要があります。 AFTER
トリガーを使用すると、まさにそれを実行できます。
あなたが何に興味を持っているのか完全にはわからないので、これを基本的に保ちます。
トリガーの前
トリガー後
BEFORE TRIGGERは、トリガーアクションがトリガーステートメントの完了を許可するかどうかを決定する必要がある場合に使用されます。BEFORETRIGGERSを使用すると、ユーザーはトリガーステートメントの不要な処理を排除できますが、AFTER TRIGGERSは、トリガーステートメントを実行する前に完了する必要がある場合に使用されます。アクションをトリガーします。