我们是否必须明确提及主键的非空约束?

时间:2013-05-10 11:16:05

标签: mysql sql primary-key

在创建表时,是否必须明确提及主键不应为null?即使我们没有提到主键的'not null'约束,SQL也不允许我们在主键字段中插入NULL值。因此,以下哪项是一种好的做法?

1)    create table registration(
        id int primary key,
        name varchar(10)

    )

2)     create table registration(
        id int primary key not null,
        name varchar(10)

    )

2 个答案:

答案 0 :(得分:3)

No你没有。

  

PRIMARY KEY是一个唯一索引,其中必须定义所有键列   作为NOT NULL。如果它们没有显式声明为NOT NULL,那么MySQL   如此隐含地(并且默默地)声明它们。一张桌子只能有一张   首要的关键。 PRIMARY KEY的名称始终是PRIMARY,因此   不能用作任何其他类型索引的名称。

然而,我认为明确说明它是一种好习惯 - 因为这会使事情更清楚, 每当你有疑问时,你都不必查看这条规则。

答案 1 :(得分:0)

问问自己,为什么你会如果它有所作为,没有它就不那么清楚,但更清楚明确?在此之后,我认为没有理由省略它并且完全有效的理由在脚本中发出它。

最佳做法通常是最明智的做法。