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

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

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

需求:

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

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

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

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

目前需求:
一條sql語句解決問題,類似上述的sql

第一次提問,感謝各位了...

回答
編輯回答
瘋浪

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

2017年7月10日 20:36