另一个我确信是一个非常基本的 MySQL 问题。
Create Table MyTable
(
zip char(5) CHECK (zip = '11111')
);
Insert into MyTable
Select '99999';
SELECT * From MyTable; --results in '99999'
我将“zip”限制为仅值“11111”,但它让我输入“99999”没问题。我错过了什么?
另一个我确信是一个非常基本的 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