概述
以下腳本均以SQLServer資料庫為準
主鍵約束在表中定義一個主鍵來唯一確定表中一行數據的
標識符.
(非空,惟一)
例如:
alter table member
add
constraint PK_member_member_no primary key clustered (member_no)
主鍵列的數據類型不限,但此列必須是唯一併且非空。
如該表中已有主鍵為1000的行,則不能再添加主鍵為1000。
人工或程式不好控制的時候,也可以設定主鍵列為自動增長列。
自增列簡述
自增列的類型應為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;