Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der beste Weg, um doppelte Einträge in die MySQL-Datenbank zu vermeiden

Der erste Schritt wäre, einen eindeutigen Schlüssel für die Tabelle festzulegen:

ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);

Dann müssen Sie entscheiden, was Sie tun möchten, wenn es ein Duplikat gibt. Sollten Sie:

  1. ignorieren?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Den zuvor eingegebenen Datensatz überschreiben?

    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')
    
  3. Zähler aktualisieren?

    INSERT INTO thetable (pageid, name)
    VALUES (1, "foo"), (1, "foo")
    ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)