0

仮定: table_name = t1

列 c1 のチェック制約は (Y, N, '') です。

しかし、上記の有効な値 (A など) 以外の値を c1 列に手動で挿入すると、データベースはエラーを発生せず、正常にコミットされます。

どうすればこれを回避できますか?

4

2 に答える 2

0

「CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます。」と仮定して、Y と N のみを受け入れるようにチェック制約を変更しました。この列に対応する変数を宣言して初期化するコードも変更する必要があります。

返信ありがとうございます。

于 2013-03-28T16:04:18.940 に答える
0

MySQL Docs HEREによると:

CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます

BEFORE INSERTこれに代わる方法は、トリガーを作成することです。

于 2013-03-21T12:49:36.433 に答える