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 回答