MySQL中的AK和PK是最常用的兩種約束,分別代表唯一約束和主鍵約束。在MySQL中,AK和PK可以為表中的某一列或多列設定,其作用是保證表數據的完整性和唯一性。
AK即Alternate Key,翻譯為“備用鍵”,它的作用是保證表中某一列或多列的值是唯一的,如果違反了該約束,則會報錯并拒絕插入或修改數據。例如,我們可以為用戶表的“手機”列設定AK,保證所有用戶的手機號碼都是唯一的:
ALTER TABLE `user` ADD UNIQUE (`phone`);
PK即Primary Key,翻譯為“主鍵”,它的作用是唯一地標識表中的每一條數據,一般是表中某一列或多列的組合。與AK不同,PK是必須設定的,如果表沒有設定PK,則無法使用一些高級特性,例如外鍵約束。
對于單列PK,我們可以使用以下語句為表中的“id”列設定主鍵約束:
ALTER TABLE `user` ADD PRIMARY KEY (`id`);
對于多列PK,我們可以使用以下語句為表中的“user_id”和“order_id”列設定主鍵約束:
ALTER TABLE `order` ADD PRIMARY KEY (`user_id`,`order_id`);
注意,PK列的值必須是唯一的,且不允許為空值。如果插入或修改數據時違反了PK約束,則會報錯并拒絕操作。