首頁 > 資料庫 > mysql教程 > MySQL如何保證多字段唯一

MySQL如何保證多字段唯一

(*-*)浩
發布: 2020-09-09 11:09:52
原創
5146 人瀏覽過

MySQL如何保證多字段唯一

推薦課程:MySQL教學

mysql有些表有時需要做一些欄位的唯一約束,當然你也可以在insert前判斷有無的方式來防止重複,如果不想額外增加程式碼來更靈活的實現一些字段的唯一約束,mysql提供了兩種方式:

1.unique key  



############# ###alter table xx#########add unique key no_account(no,collection_account)#############add unique key no_account(no,collection_account)#########2.unique index##########alter table xxadd unique no_account_index(no,collection_account);#########假設有一個需求是使用者給予評論按讚,資料庫設計是三張表,使用者表t_user,評論表t_comment,按讚表t_praise,其中按讚表中有兩個外鍵分別是user_id和comment_id,分別關聯用戶表的用戶id和評論表的評論id,然後規定一個用戶只能給同一條評論點讚一次,有一種實現方式就是在插入點贊表之前,先透過user_id和comment_id查詢是否有點讚記錄,如果沒有的話,再執行插入操作,否則返回您已經點過讚了.這樣實現的話就會多一次數據庫查詢操作.更好的實現是,修改讚表的user_id和comment_id為唯一約束,即這兩列不能同時相同,這樣在執行插入操作的話,如果已經點過讚了,數據庫會拋出違反了唯一鍵約束,這樣的話,就可以避免多一次資料庫查詢操作了.具體設定多列為唯一約束的語句是:###
CREATE TABLE `t_praise` (
  `id` int(12) unsigned NOT NULL AUTO_INCREMENT,
  `comment_id` int(12) NOT NULL,
  `user_id` int(12) NOT NULL,
  KEY `FK_t_praise_comment` (`comment_id`),
  KEY `FK_t_praise_user` (`user_id`),
  UNIQUE KEY `UK_praise` (`comment_id`,`user_id`)

)
登入後複製

以上是MySQL如何保證多字段唯一的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板