为什么在创建表时指定主键不为空?

时间:2012-05-16 00:06:56

标签: sql sql-server create-table

sql server中的一段sql

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

主键本质上不是null,为什么我们仍然在这里指定not null?我错过了什么吗?

4 个答案:

答案 0 :(得分:4)

是的,根据定义,“主键”是“非空”。

问:你反对输入八个额外字符吗?

问:您是否尝试省略“not null”?会发生什么?

答案 1 :(得分:2)

你不必使用它,它是多余的......

答案 2 :(得分:1)

因为Primary key不会包含NULL值。此密钥是记录的标识符。

答案 3 :(得分:0)

因为它是来自自动生成的脚本的复制粘贴,而Not Null来自列设置,而主键来自约束定义?