De eerste stap zou zijn om een unieke sleutel op tafel te leggen:
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
Dan moet je beslissen wat je wilt doen als er een duplicaat is. Moet je:
-
negeren?
INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
-
Het eerder ingevoerde record overschrijven?
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')
-
Een teller bijwerken?
INSERT INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo") ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)