OracleのトリガーをMySQLのトリガーに置き換えております。
トリガー内でreturnで処理終了している箇所があるのですが、
MySQLのトリガーでreturn文が使えないのか構文エラーとなります。
MySQLのトリガーで途中で処理を終了したい場合は、どう書けば良いのでしょうか?
該当のソースコード
SQL
1 IF TMP_COUNT <> 0 THEN 2 RETURN; 3 END IF; 4
元となるORACLEのトリガー文は下記のとおりです。
SQL
1CREATE 2TRIGGER TRG_XXX AFTER INSERT ON TABLE_A FOR EACH ROW 3DECLARE 4 TMP_COUNT NUMBER; 5BEGIN 6 7 SELECT COUNT(*) INTO TMP_COUNT FROM TABLE_B WHERE CD = NVL(:new.XXX_CD,'0000') AND CD2 = NVL(:new.ZZZ_CD,'0000'); 8 9 IF TMP_COUNT <> 0 THEN 10 RETURN; 11 END IF; 12 13 14 INSERT INTO T_BUMON( 15 CD 16 ,CD2 17 )VALUES( 18 NVL(:new.XXX_CD,'0000') 19 ,NVL(:new.ZZZ_CD,'0000') 20 ); 21END;
書いてて気づきましたが、returnできないのであれば、IF文の条件に入らない時だけ、下のINSERTを実行するように条件分岐すれば解決ですかね…
テーブル構造をcreate tableで表記し、
具体的に何をしたときどう発動したいのか示してください
そもそもMySQL的にはトリガーがreturnする状況がありえません
回答2件
あなたの回答
tips
プレビュー