挿入前に条件をテストし、条件が満たされてから挿入をキャンセルするトリガを作成したいとします。挿入前のMySQLテストと条件が満たされた場合のキャンセル
if文が含まれているマニュアルでこのコードに遭遇しましたが、挿入をキャンセルする方法はドキュメントに記載されていません。
CREATE TRIGGER upd_check BEFORE UPDATE ON account -> FOR EACH ROW -> BEGIN -> IF NEW.amount < 0 THEN -> SET NEW.amount = 0; -> ELSEIF NEW.amount > 100 THEN -> SET NEW.amount = 100; -> END IF; -> END;
このトリガーは、 'INSERT'ではなく、' UPDATE'のトリガーです。 – Blank
MySQLからのINSERTをブロックする唯一の方法は例外をスローすることだと思います。あなたのアプリケーション層から 'INSERT'をブロックする方法はありますか? –