トリガーによる INSERT の失敗の原因
MySQL のトリガーは挿入または更新の前にデータを変更できますが、当初は変更できると考えられていました。操作の失敗を防ぐことはできません。しかし、さらなる調査により、この機能を実現する方法があることが判明しました。
MySQL の回避策
MySQL バージョン 5.0 および 5.1 では、回避策を使用して、をトリガーし、エラー メッセージを表示します。これには、存在しない列へのアクセス試行が含まれます:
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;
条件が満たされると、トリガーは存在しないテーブルからエラー メッセージを選択しようとし、指定されたメッセージで挿入が失敗します。 .
その他の RDBMS
トリガー内で例外をスローして操作を中止する機能は、すべての RDBMS で普遍的にサポートされているわけではありません。ただし、一部のデータベースは、トリガー内の検証エラーを処理するための代替メカニズムを提供します。例:
以上がMySQL トリガーは INSERT 操作の失敗を防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。