防止整行重複,假設我們已經組織了一個非常簡單的SQL表如下:標準SQL
email_address | phone_number
[email protected] | 5555555555
[email protected] | 9999999999
[email protected] | 7468382678
在這個例子中,它是完全可以擁有附加到電子郵件地址的多個電話號碼。如果我想防止插入精確重複(防止插入,如果兩個列匹配),有沒有辦法做到這一點使用單個查詢?我想避免顯而易見的,「SELECT count(*)FROM db WHERE email_address='[email protected]'AND phone_number ='5555555555',如果我們找不到記錄)
我使用了一個標準版本的MySQL,因此專有擴展不會在這種情況下工作。(我知道的IF NOT EXISTS和其他MS擴展)
是否有任何形式的多-column條件,我可以設置,以實現此目的?什麼是最有效的方法來做到這一點?
使用兩個查詢只是感覺不對
非常感謝。
你的直覺是正確的:使用2個*查詢*是錯誤的。 http://en.wikipedia.org/wiki/Race_condition – soulmerge 2011-04-27 22:31:55