sql >> Database teknologi >  >> RDS >> Mysql

Bedste måde at undgå duplikatindtastning i mysql-databasen

Første skridt ville være at sætte en unik nøgle på bordet:

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

Så skal du beslutte dig for, hvad du vil gøre, når der er en dublet. Skal du:

  1. ignorere det?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Vil du overskrive den tidligere indtastede post?

    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. Opdater en tæller?

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


  1. SQL Server En udløser til at arbejde på indsættelse af flere rækker

  2. Der er opstået en JNI-fejl. Tjek venligst din installation og prøv igen i Eclipse x86 Windows 8.1

  3. Postgres:Hvordan konverteres en json-streng til tekst?

  4. JDBC ResultSet får kolonner med tabelalias