鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ MySQL多個(gè)唯一列,插入數(shù)據(jù)問(wèn)題

MySQL多個(gè)唯一列,插入數(shù)據(jù)問(wèn)題

舉個(gè)例子:
有一張表,標(biāo)題和出處兩個(gè)列被設(shè)置了唯一屬性

需求:

當(dāng)兩列的值完全一致時(shí),才不會(huì)插入數(shù)據(jù),只要兩列的值有一個(gè)不同都會(huì)插入數(shù)據(jù)

嘗試操作:
當(dāng)使用下列sql語(yǔ)句進(jìn)行插入操作時(shí),發(fā)現(xiàn)只能插入一條數(shù)據(jù),受到上述兩個(gè)唯一列的限制,只插入了一條數(shù)據(jù),也就是說(shuō)現(xiàn)在是兩個(gè)兩個(gè)唯一列同時(shí)生效而不是組合生效

insert into xxx .... ON DUPLICATE KEY UPDATE xxx=xxx;

其他辦法設(shè)想:
插入前select查詢數(shù)據(jù),根據(jù)結(jié)果判斷數(shù)據(jù)是否存在
不存在則插入數(shù)據(jù),存在則略過(guò)本次操作

目前需求:
一條sql語(yǔ)句解決問(wèn)題,類似上述的sql

第一次提問(wèn),感謝各位了...

回答
編輯回答
瘋浪

思維死角了...
一直糾結(jié)數(shù)據(jù)庫(kù)該怎么操作,其實(shí)可以在程序中對(duì)兩個(gè)字段的值進(jìn)行hash操作,然后把這個(gè)hash過(guò)的值設(shè)置在數(shù)據(jù)庫(kù)中設(shè)置為唯一,這樣就解決了問(wèn)題...

2017年7月10日 20:36