- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ORACLEのトリガーについて勉強しているのですが現在詰っています。)
ORACLEのトリガーについての勉強で詰まっています
このQ&Aのポイント
- ORACLEのトリガーについて勉強している中で、特にINSERT文に関するトリガーの作成方法に詰まっています。
- トリガーを使用して、table1のレコードがUPDATEかINSERTかDELETEされた場合に、そのレコードをtable2にINSERTする方法を理解したいです。
- トリガーのコードの中で、INSERT文の実行部分を正確に記述する方法がわからず、どのように書くべきか悩んでいます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
トリガーでログ出力機能を用意しても、本体でエラーが発生すると、 ログ出力内容までロールバックされますが、それでいいのですか? (自律トランザクション書けば、ログをロールバックしないように出来ますが・・) ご質問のトリガーでのINSERT文ですが・・ INSERT文の構文自体は、普通のINSERT文です。 ただ、トリガーを仕込んだテーブルの新旧の値は、:new.xxxや、:old.xxxのような表現で扱えるので、 insert into table2 (col1,col2) values(:new.colA,:new.colB); のような書き方になります。
お礼
回答ありがとうございます。 おかげで悩みが解決しました。 エラーが発生した場合はログ出力はロールバックされたほうがいいので 今回は自律トランザクションを使わないことにします。 ありがとうございました。