MySQL - 将CHECK添加到列

时间:2014-09-26 00:45:24

标签: mysql check-constraint

另一个我确定的是一个非常基本的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 个答案:

答案 0 :(得分:1)

https://dev.mysql.com/doc/refman/5.6/en/create-table.html说:

  

CHECK子句被解析但被所有存储引擎忽略。

也就是说,它接受没有错误或警告的语法,但不存储约束,也不会阻止您插入不满足检查的数据。

此功能自2004年以来一直被请求,但从未实现过:http://bugs.mysql.com/bug.php?id=3464