在下面的SQL代碼中'NOT NULL'是多餘的,因爲f_ID是主鍵,因此對於任何記錄都不能爲空?SQL Server - 'NOT NULL'主鍵上的約束冗餘?
CREATE TABLE t_Activities(
f_ID varchar(50) NOT NULL,
PRIMARY KEY (f_ID))
在下面的SQL代碼中'NOT NULL'是多餘的,因爲f_ID是主鍵,因此對於任何記錄都不能爲空?SQL Server - 'NOT NULL'主鍵上的約束冗餘?
CREATE TABLE t_Activities(
f_ID varchar(50) NOT NULL,
PRIMARY KEY (f_ID))
如果您稍後放棄主鍵約束會怎麼樣?此後該列是否允許空值?是的,不,也許?這兩個約束是不同的。 PK約束要求一個NOT NULL,但不要暗示之一。
這可能是多餘的,但我更喜歡創建primary key
(或Identity
列)的這個方法。這表明製作表格的人理解並打算將表格的列爲NOT NULL
以及Primary Key
。
這是正確的。如果您有:
CREATE TABLE t_Activities(
f_ID varchar(50),
PRIMARY KEY (f_ID))
這將是等同的。主鍵約束不允許NULL
s。