La première étape serait de définir une clé unique sur la table :
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
Ensuite, vous devez décider ce que vous voulez faire lorsqu'il y a un doublon. Devriez-vous :
-
l'ignorer ?
INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
-
Ecraser l'enregistrement saisi précédemment ?
INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "first") ON DUPLICATE KEY UPDATE (somefield = 'first') INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "second") ON DUPLICATE KEY UPDATE (somefield = 'second')
-
Mettre à jour un compteur ?
INSERT INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo") ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)