[`SIGNAL`構文で例外をスローする]を使用できます。Message';状態45000は、「未処理のユーザー定義例外」を表す一般的な状態です。'これがアプローチのより完全な例です。trigger_test;source57http://www.brokenbuild.com/blog/2006/08/15/mysql-triggers-how-do-you-abort-an-insert-update-or-delete-with-a-trigger/[こちらは1つですハック]それはうまくいくかもしれません。それはきれいではありませんが、それはうまくいくかもしれないように見えます:基本的には、存在しない列を更新しようとするだけです。RuuiDCが提供する回答は、5.5より前のMySQLバージョンでは機能しません。ストアドプロシージャに対する_SIGNAL_の実装がないためです。`table_name`にプッシュします。ハッキングは、トリガーまたはストアドプロシージャを使用して実装できます。以下の@RuiDCで使用されている例に従って、両方のオプションについて説明します。;ストアドプロシージャを使用するストアドプロシージャを使用すると、動的SQLを使用できます。これにより、エラー生成機能を1つのプロシージャにカプセル化できます。UPDATEに直接権限を付与しないでください)。;source11以下の手順は、(mysql5上で)カスタムエラーをスローし、同時にそれらをログに記録する方法です。varchar(64)が一意)エンジンINNODBを作成します。"]"、errorText)を選択します。"ログサポート付きのカスタムエラーメッセージ")を呼び出します。IF;終わり;source4あなたが使用することができる別の(ハック)方法(あなたが何らかの理由で5.5を使用していない場合):必須フィールドがある場合は、トリガー内でその必須フィールドをNULLなどの無効な値に設定します。これはINSERTとUPDATEの両方で機能します。NULLが必須フィールドの有効な値である場合(何らかの理由で)、この方法は機能しません。次のいずれかを強制的に代入します。IF;終わり5.5を使用している場合は、他の回答で説明されているようにシグナル状態を使用できます。次のいずれかを強制的に代入します。nullable_field_1の識別子またはnullable_field_2が必要です。Row"に相当するものをトリガします。