1

我们是否必须在创建表时明确提到主键不应该为空?即使我们没有提到主键的“非空”约束,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)

    )
4

2 回答 2

4

,你没有。

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

但是,我认为明确说明它是一种好习惯 - 因为这会使事情变得更加清晰,并且您不必每次有疑问时都查看此规则。

于 2013-05-10T11:18:45.210 回答
0

问问自己,为了它,如果它使某些东西变得不那么清晰,你为什么不这样做呢?在此之后,我认为没有理由忽略它,并且完全有理由在脚本中发出它。

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

于 2013-05-10T11:19:11.727 回答