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