トリガーを使用して INSERT を失敗することは可能ですか?
MySQL では、トリガーは挿入や更新の前にデータを変更する機能を備えています。ただし、これらのトリガーは、対応する挿入または更新操作を直接失敗させることができず、検証に関する懸念が生じる余地が残っていることが観察されています。
この制限は、MySQL 内に特定の例外処理メカニズムが存在しないことに起因しています。トリガー。 SQL 標準ではエラー処理用に SIGNAL および RESIGNAL ステートメントが定義されていますが、これらは MySQL にはまだ実装されていません。
ただし、この機能をエミュレートする回避策として、システム内に存在しないカラムを強制的に使用しようとする回避策が開発されました。トリガー。これにより MySQL 内でエラーがトリガーされ、失敗した操作を示すために使用できます。次のコードは、この手法を示しています。
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;
このトリガーは、 important_value 列を評価し、必要な計算を実行します。条件が満たされない場合、存在しない列からデータを選択しようとするため、エラーが発生し、挿入操作が失敗します。
以上がMySQL トリガーは INSERT 失敗を直接引き起こす可能性がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。