1

私が確信しているもう1つのことは、非常に基本的なMySQLの質問です。

Create Table MyTable 
(
    zip char(5) CHECK (zip = '11111')
);

Insert into MyTable
Select '99999';

SELECT * From MyTable;   --results in '99999'

「zip」を値「11111」のみに制限していますが、「99999」を入れても問題ありません。私は何が欠けていますか?

4

1 に答える 1

1

https://dev.mysql.com/doc/refman/5.6/en/create-table.html言います:

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

つまり、エラーや警告なしで構文を受け入れますが、制約を格納せず、チェックを満たさないデータの挿入を妨げません。

この機能は少なくとも 2004 年から要求されていましたが、実装されていません: http://bugs.mysql.com/bug.php?id=3464

于 2014-09-26T00:47:59.847 に答える