仮定: table_name = t1
列 c1 のチェック制約は (Y, N, '') です。
しかし、上記の有効な値 (A など) 以外の値を c1 列に手動で挿入すると、データベースはエラーを発生せず、正常にコミットされます。
どうすればこれを回避できますか?
「CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます。」と仮定して、Y と N のみを受け入れるようにチェック制約を変更しました。この列に対応する変数を宣言して初期化するコードも変更する必要があります。
返信ありがとうございます。
MySQL Docs HEREによると:
CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます。
BEFORE INSERT
これに代わる方法は、トリガーを作成することです。