0

我写了架构:

CREATE TABLE user
(
user_id INT UNSIGNED AUTO_INCREMENT NOT NULL,
fname VARCHAR(20) NOT NULL,
lname VARCHAR(20) NOT NULL,
email VARCHAR(30) NOT NULL,
password VARCHAR(60) NOT NULL,
gender ENUM('M', 'F'),
CONSTRAINT pk_user_id PRIMARY KEY (user_id) 

)

但是当只插入两个值时,假设用户的名字和姓氏,电子邮件和密码留空,这意味着 not null 没有按预期工作。当我显示它们时,我确实收到了 2 个警告,但行为与预期不符。我是否必须专门制定约束以使插入失败以确保这种情况永远不会发生?

4

1 回答 1

0

不幸的是,mysql 不支持CHECK约束。

出于兼容性原因,它们在 mysql 中是“有效语法”,因此您可以对它们进行编码,并且创建表 SQL 将执行 OK,但此后它们将被忽略。

于 2012-04-22T18:48:13.703 回答