這篇文章將為大家詳細講解有關(guān)MySQL保證多字段唯一的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營業(yè)務:網(wǎng)站設計制作、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出銀海免費做網(wǎng)站回饋大家。
mysql中有些表有時需要做一些字段的唯一約束,當然你也可以在insert前判斷有無的方式來防止重復,如果不想額外增加代碼來更靈活的實現(xiàn)一些字段的唯一約束,mysql提供了兩種方式:
1.unique key
alter table xx
add unique key no_account(no,collection_account)
2.unique index
alter table xxadd unique no_account_index(no,collection_account);
假設有一個需求是用戶給評論點贊,數(shù)據(jù)庫設計是三張表,用戶表t_user,評論表t_comment,點贊表t_praise,其中點贊表中有兩個外鍵分別是user_id和comment_id,分別關(guān)聯(lián)用戶表的用戶id和評論表的評論id,然后規(guī)定一個用戶只能給同一條評論點贊一次,有一種實現(xiàn)方式就是在插入點贊表之前,先通過user_id和comment_id查詢是否有點贊記錄,如果沒有的話,再執(zhí)行插入操作,否則返回您已經(jīng)點過贊了.這樣實現(xiàn)的話就會多一次數(shù)據(jù)庫查詢操作.更好的實現(xiàn)是,修改點贊表的user_id和comment_id為唯一約束,即這兩列不能同時相同,這樣在執(zhí)行插入操作的話,如果已經(jīng)點過贊了,數(shù)據(jù)庫會拋出違反了唯一鍵約束,這樣的話,就可以避免多一次數(shù)據(jù)庫查詢操作了.具體設置多列為唯一約束的語句是:
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`) )
關(guān)于MySQL保證多字段唯一的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:MySQL保證多字段唯一的方法
轉(zhuǎn)載來于:http://jinyejixie.com/article0/pocioo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、商城網(wǎng)站、網(wǎng)站收錄、移動網(wǎng)站建設、自適應網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)