- PR -

トリガーについて

1
投稿者投稿内容
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2005-12-07 12:41
現在Oracleにて開発をしています。

そこで疑問に思ったのが
「[before insert で作成したトリガー内でなんらかの条件の時に insert処理を中断する」なんてことは出来るのでしょうか?

出来ないのであれば、after insertで削除すれば良いのかと思っているのですが…

ご存知の方 いらっしゃいましたら よろしくお願いします。

DB:Oracle9i

[ メッセージ編集済み 編集者: sshir 編集日時 2005-12-07 12:45 ]
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2005-12-07 13:40
自己レス

after insert で削除できないですね

取り合えず処理中断条件に入ったら主キー項目にNULL設定してエラー発生させるようにしました。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2005-12-07 14:48
引用:

sshirさんの書き込み (2005-12-07 13:40) より:
取り合えず処理中断条件に入ったら主キー項目にNULL設定してエラー発生させるようにしました。



RAISE_APPLICATION_ERRORをコールして、例外を発生させるのがスマートなやり方だと思います。任意のエラーメッセージを返すことができますし。
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2005-12-07 15:03
引用:

カーニーさんの書き込み (2005-12-07 14:48) より:
RAISE_APPLICATION_ERRORをコールして、例外を発生させるのがスマートなやり方だと思います。任意のエラーメッセージを返すことができますし。



なるほど!
参考にさせていただきます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)