只有感謝的心情不能忘記
在上回我們介紹了 Primary Key 約束的性質以及主要的功能,這次我們要介紹的則是如何對資料表建立 Primary Key,我們可以在建立資料表的當下就對資料表建立,建立時的規則是
Create Table 資料表名稱
(
欄位名稱 欄位型態 Not Null Primary Key,
欄位名稱 欄位型態,
欄位名稱 欄位型態,
欄位名稱 欄位型態,
)
其中,Not Null 是必要的,因為Primary Key 不可為空。
請打開 New Query 後,複製下列文字並按下 F5 執行:
Create Table Primary_Key_Test
(
Student_ID int Not Null Primary Key,
Student_Name nvarchar(50),
Date_of_Birth date
)
或者是在建立資料表之後,對現有的資料表建立,建立時的規則是
Alter Table 資料表名稱
Add Primary Key (欄位名稱);
指定的欄位一樣必須有 Not Null 的約束。
請打開 New Query 後,複製下列文字並按下 F5 執行:
Create Table Primary_Key_Test_2
(
Student_ID int Not Null,
Student_Name nvarchar(50),
Date_of_Birth date
)
ALTER TABLE Primary_Key_Test_2
ADD PRIMARY KEY (Student_ID);
值得注意的是,對於同一個資料表只能建立一個 Primary Key 約束,如果試圖建立多個 Primary Key 約束,則會引發錯誤。
而在建立 Primary Key 約束之後,對資料表寫入資料就會受到 Primary Key 約束所影響,請打開 New Query 後,複製下列文字並按下 F5 執行:
Create Table Primary_Key_Test_3
(
Student_ID int Not Null,
Course_ID nvarchar(50) Not Null,
Score CHAR(5)
);
ALTER TABLE Primary_Key_Test_3
ADD PRIMARY KEY (Student_ID,Course_ID);
INSERT INTO Primary_Key_Test_3 (Student_ID,Course_ID,Score)Values
('1001','0020','A'),
('1001','0021','B'),
('1002','0020','C'),
('1001','0020','D')
就會發現在作為 Primary Key 約束的欄位已經無法再插入重複的資料。
接下來則是介紹哪裡可以看到這些已經被建立的 Primary Key 約束,首先是透過物件瀏覽器可以在每張資料表的底下看到 Primary Key 的資料限制,如同上面的例子。
第二個方法是透過對系統資料表進行物件的查詢,請打開 New Query 後,複製下列文字並按下 F5 執行:
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
而我們其實是無法直接修改已經建立的 Primary Key 約束的,只有透過刪除並重新建立才能更動資料表中的 Primary Key 約束,
以上就是 Primary Key 約束的建立、效果、檢視方式與如何刪除,在下一次,我們將會講解 Foreign Key 條件約束。刪除時的規則是 Alter Table 資料表名稱 Drop 約束名稱,請打開 New Query 後,複製下列文字並按下 F5 執行:
ALTER TABLE Primary_Key_Test_3
DROP PK__Primary___018AE9F347CD022C
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
就會發現原本在 Primary_Key_Test_3 資料表上的 Primary Key 約束已經消失了。
以上就是 Primary Key 約束的建立、檢視、刪除與實際效果,在下次我們將會說明 Foreign Key 資料約束。