Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleur moyen d'éviter les entrées en double dans la base de données mysql

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 :

  1. l'ignorer ?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. 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')
    
  3. Mettre à jour un compteur ?

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