2011-12-30 19 views
0

データを挿入するtable Aがあります。次に、同じtable Aを更新する計算が実行されています。テーブルにデータを挿入した後にトリガーをかける方法

トリガーを起動すると、データ挿入の完了後(挿入および更新後)に0​​が呼び出されます。

どうすればよいですか?

自動的に行う他の方法はありますか?table Aにデータ挿入完了後にProcedure Aを手動で実行する必要がありますか。


もっと簡単に言えば、いくつかの行とコミットを挿入した後、つまり各行にトリガーをかける方法を知りたいと思います。

+0

なぜ更新後トリガーはあなたを助けませんか? (それぞれのためではなく、ステートメントトリガー) –

答えて

4

トリガーを各行または各ステートメント(FOR EACH ROWオプション)に対して定義することができます。

私はあなたのことを正しく理解していれば、一連の声明の後でトリガーを発したいと思っていますか?あなたができるとは思わないでください。あなたができても、私はむしろそれをしないでしょう。彼らはあなたのプログラムフロー/ロジックを散らし、あなたのソフトウェアがどのように動作するかを後で理解することをより困難にします。

よろしく

+0

私は正しいと思う...私はインターネット上の何かを見つけた。.. 他のオプションを試してみる...いつもありがとう... – Avi

3

私が正しくあなたの質問を理解していれば、あなたはいくつかの挿入/更新文からなるあなたのトランザクションを完了した後、あなたは火にトリガーをしたいですか?その場合は、挿入/更新操作が完了した直後に、プログラムの中でProcedure Aを呼び出すことを検討する必要があります。

言い換えれば、トリガは、各行または各文に対して呼び出される必要がある場合にのみ有効です。

0

テーブルに列を1つ追加します(例:「FINAL_ACTION」)。あなたの予期される最終的な行動が終わるまでこの列を触れないでください。次に、この句でトリガーを発動させます:

REFERENCING NEW AS NEWREC OLD AS OLDREC 
FOR EACH ROW 
WHEN (NEWREC.FINAL_ACTION <> OLDREC.FINAL_ACTION) 
DECLARE 
    --YOUR DECLARATIONS 
BEGIN 
    --DO SOMETHING 
END; 
関連する問題