2012-04-28 12 views
5

già cercato per questi argomenti e trovato 2 soluzioni diverse ma nessuno funziona.MySQL INSERT IGNORE o ON DUPLICATE KEY DO_NOTHING

Il mio tavolo ha struttura | ID (auto_increment primary_key) | UID (int) | FAV_ID (int) |

Ho bisogno di inserire un nuovo record in questo FAV_TABLE se UID e FAV_ID (entrambi) esistono già.

esempio della mia interrogazione:

INSERT INTO FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id) ON DUPLICATE KEY UPDATE uid = uid 

o questa

INSERT IGNORE FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id); 

Come manuali mysql dice questa query non aggiunge registrare solo se PRIMARY_KEY è lo stesso. E ho bisogno di una query per non aggiungere record se pair uid + fav_id è univoco. Qualche soluzione? Grazie

risposta

4

È necessario aggiungere un UNIQUE KEY su quelle colonne:

ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id); 
+0

grande, grazie mille! – 265

2

INSERT IGNORE o ON DUPLICATE KEY funziona solo quando una chiave univoca è duplicato.

È necessario aggiungere un indice UNIQUE su entrambi i campi uid e fav_id. In questo modo, quando si inserisce una coppia duplicata, verrà ignorata.

Problemi correlati