是否有必要为 MySQL 数据库中的主键声明“NOT NULL”约束?主键不能有 NULL 值,因为它无论如何都会自动递增并自动填充字段记录。那么我是否正确地说这意味着我可以删除主键的“NOT NULL”约束?
问问题
7721 次
4 回答
18
(正如您已标记您的问题mysql
。)在 MySQL 中,您不必明确地这样做。从手册:
A
PRIMARY KEY
是一个唯一索引,其中所有键列都必须定义为NOT NULL
。如果它们没有显式声明为NOT NULL
,MySQL 会隐含地(并且默默地)声明它们。
当然,仅仅因为您不必这样做并不意味着您可能不想为了清楚起见等。
于 2012-05-05T14:47:58.883 回答
2
是和否您可以删除“Not null”,但这不会删除约束。就我个人而言,我会把它们留在里面,你把它们拿出来没有任何价值。
于 2012-05-05T14:56:25.307 回答
0
主键不得包含可为空的列。auto_increment
不是检查约束,(而是默认约束),因此not null
无论是否存在auto_increment
. not null
在 mysql 中创建主键表时不必键入,因为引擎会自动添加此约束。
于 2012-05-05T15:03:26.227 回答
0
我们不需要明确声明该列不为空,因为主键约束使该列不为空。我已经检查了Oracle。
于 2015-12-01T14:43:39.930 回答