2013-05-10 27 views
1

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

    ) 
+1

好的做法是明确指出NOT NULL。它不是太多的变化,通常SQL Studio会为你做这件事。遵循这里的指导方针是一个很好的例子。 http://www.w3schools.com/sql/sql_primarykey.asp – TheGeekZn 2013-05-10 11:17:55

+0

隐形效果.... – matzone 2013-05-10 11:21:24

回答

3

No你没有。

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

但是我认为这是很好的做法,明确规定它 - 为使事情变得更加清晰, ,你不必在每次你在怀疑是时候来关注一下吧这条规则。

0

问问你自己,为什么你要而不是如果它做出了一些事情,不一定没有它就不那么清楚,但更明确地清楚了吗?在此之后,我看不出有什么理由可以忽略它,并且在脚本中发布它是完全有效的理由。

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

相关问题