MySQL - 主键需要“NOT NULL”约束吗?

时间:2012-05-05 14:45:26

标签: mysql sql database database-design

是否有必要为MySQL数据库中的主键声明“NOT NULL”约束?主键不能具有NULL值,因为它无论如何都会自动增量并自动填充字段记录。所以我说这是正确的意思是我可以删除主键的“NOT NULL”约束吗?

4 个答案:

答案 0 :(得分:13)

(正如您标记了问题mysql。)在MySQL中,您不必明确地执行此操作。来自the manual

  

PRIMARY KEY是一个唯一索引,其中所有键列必须定义为NOT NULL。如果它们没有显式声明为NOT NULL,那么MySQL会隐式声明它(并且默默地)。

当然,仅仅因为你没有拥有并不意味着你可能不想要清晰等等。

答案 1 :(得分:2)

是和否 您可以删除" Not null",但不会删除约束。就个人而言,我把它们留在里面,你从中取出它们没有任何价值。

答案 2 :(得分:0)

主键不得包含可为空的列。 auto_increment不是检查约束(它是默认约束),因此无论是否存在not null,您都无法从属于主键的列的定义中删除auto_increment。在mysql中创建主键表时,不必键入not null,因为引擎会自动添加此约束。

答案 3 :(得分:0)

我们不需要将列显式声明为非null,因为主键约束使列NOT NULL。我已经检查了Oracle。

相关问题