【发布时间】:2011-01-08 02:24:03
【问题描述】:
首先我创建了一个类似的表
CREATE TABLE Customer (
SD integer CHECK (SD > 0),
Last_Name varchar (30),
First_Name varchar(30)
);
然后在该表中插入值
INSERT INTO Customer values ('-2','abc','zz');
MySQL 没有显示错误,它接受了这些值。
【问题讨论】:
-
部分同意。鉴于您尝试使用它,可以假设您同时问了这两个问题。其实你接受的答案主要是解释为什么不行。
-
您可以对此功能请求投票:bugs.mysql.com/bug.php?id=3464,但十年来没有受到任何关注。
-
您可以在 MariaDB 中使用来自version 10.2.1 的 CHECK 约束。
-
现在 MySQL 8.0.16 终于解决了这个问题,是时候默默地认识到(!)也忽略了内联 REFERENCES 规范(另一个大的 SQL 标准不兼容):bugs.mysql.com/bug.php?id=102904。
-
在 MySQL 8.x 中存在 CHECK CONSTRAINT 支持