私が確信しているもう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」を入れても問題ありません。私は何が欠けていますか?
私が確信しているもう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」を入れても問題ありません。私は何が欠けていますか?
https://dev.mysql.com/doc/refman/5.6/en/create-table.html言います:
CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます。
つまり、エラーや警告なしで構文を受け入れますが、制約を格納せず、チェックを満たさないデータの挿入を妨げません。
この機能は少なくとも 2004 年から要求されていましたが、実装されていません: http://bugs.mysql.com/bug.php?id=3464