什么是主鍵約束
主鍵約束是在數(shù)據(jù)庫表中對(duì)于一個(gè)或多個(gè)列的唯一標(biāo)識(shí),可以用于搜索和排序數(shù)據(jù)。主鍵約束可以保證表中的每一行數(shù)據(jù)都是唯一的
為什么要定義主鍵約束名
有時(shí)候我們?cè)趧?chuàng)建一個(gè)數(shù)據(jù)庫表時(shí)需要多個(gè)主鍵,或者在修改表結(jié)構(gòu)時(shí)需要添加或者刪除主鍵。如果沒有指定主鍵約束名,那么數(shù)據(jù)庫系統(tǒng)會(huì)自動(dòng)生成一個(gè)默認(rèn)的主鍵名稱,如果我們需要修改或者刪除這個(gè)主鍵,就需要先查詢這個(gè)默認(rèn)的主鍵名稱。因此在定義主鍵時(shí)命名一個(gè)清晰易懂的名稱,會(huì)更加方便我們?nèi)ス芾砗途S護(hù)這個(gè)表。
如何定義主鍵約束名
在定義主鍵時(shí),我們可以在語句中使用 CONSTRAINT 關(guān)鍵字,后面再緊跟一個(gè)指定的名稱,例如:
CREATE TABLE `user` ( `id` int(11) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, PRIMARY KEY (`id`) CONSTRAINT `PK_user` //這里指定了主鍵名稱為 PK_user ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在這里我們使用 CONSTRAINT 關(guān)鍵字指定了主鍵名稱為 PK_user,當(dāng)然你可以使用你自己定義的名稱作為主鍵名稱。
命名規(guī)范
通常來說,我們命名主鍵時(shí)可以使用以下的命名規(guī)范:
- 以 PK_ 為前綴,表示這是一個(gè)主鍵
- 使用表名作為前綴,可以更加清晰地顯示這個(gè)主鍵屬于哪個(gè)表
- 使用主鍵所在列的名稱來進(jìn)行命名,這樣可以更加方便地查詢和修改主鍵
例如:PK_userId、PK_orderNo、PK_article_id 等等。