将NOT NULL添加到主键字段有什么意义?主键已经不是null +唯一。
下面是一个示例:
CREATE TABLE student (
id int(11) AUTO_INCREMENT NOT NULL,
name varchar(255),
PRIMARY KEY(id)
)为什么不像这样定义它呢?
CREATE TABLE student (
id int(11) AUTO_INCREMENT,
name varchar(255),
PRIMARY KEY(id)
)发布于 2010-08-17 13:51:11
他们是一样的。主键自动获得NOT NULL。
发布于 2010-08-17 15:08:54
你是在问,为什么人们在不必要的情况下费心地添加NULL呢?只是因为它是好的风格,我想。让读者明白这一点。
发布于 2010-08-17 13:49:51
NULL不等同于NULL(因为NULL表示一个未知或缺失的值),因此将允许您拥有多个具有id的NULL的记录,即使定义了一个主键/唯一约束,因此可以使用NOT NULL。这是如果MySql甚至允许您在可空字段上定义主键的话。
此外,由于主键通常在其他表中的外键中使用,因此使用一个或多个NULL值是没有意义的。
https://stackoverflow.com/questions/3503089
复制相似问题