主鍵約束

表中定義的標識符

主鍵約束在表中定義一個主鍵來唯一確定表中每一行數據的標識符.

(非空,惟一)

例如:

alter table member

add

constraint PK_member_member_no primary key clustered (member_no)

主鍵列的數據類型不限,但此列必須是唯一併且非空。

如該表中已有主鍵為1000的行,則不能再添加主鍵為1000。

人工或程序不好控制的時候,也可以設置主鍵列為自動增長列。

概述


以下腳本均以SQLServer資料庫為準
主鍵約束在表中定義一個主鍵來唯一確定表中一行數據的標識符.
(非空,惟一)
例如:
alter table member
add
constraint PK_member_member_no primary key clustered (member_no)

自增列簡述


自增列的類型應為int或bigint型。可以設置起始和每次遞增數。
如:create table [table1]
(
[id] [int] identity(1,1)...
)
這樣每次插入則不需要為主鍵設置參數,資料庫會根據設置的遞增條件,自動給出主鍵值。
如以上代碼所示,則第一次插入後主鍵為1,第二次為2,依次遞增。
需要注意的是:如果這個表中有10條數據,主鍵為1-10不間斷的數字,那現在要刪除第十條數據,
繼續插入的話,id則會變成11,而不是10。通俗的說就是主鍵使用過一次將不會再次使用。

主鍵的作用


主鍵是一個表中能標識唯一行的標誌(也有其他方法表示唯一行,如唯一列)。
主鍵主要用在查詢單調數據,修改單調數據和刪除單調數據上。
一般做程序的時候,都將表的主鍵設置為int型的可自增的列,這樣在編程的時候,很容易區分數據。
刪除:delete from [table] where id=1;
修改:update [table] set col1='test' where id=1;
查詢:select * from [table] where id=1;