Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Najlepszy sposób na uniknięcie zduplikowanych wpisów do bazy danych mysql

Pierwszym krokiem byłoby ustawienie unikalnego klucza na stole:

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

Następnie musisz zdecydować, co chcesz zrobić, gdy pojawi się duplikat. Jeśli:

  1. zignorować?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Zastąpić wcześniej wprowadzony rekord?

    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. Zaktualizować jakiś licznik?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja LPAD() w MySQL

  2. MySQL ERROR 1045 (28000):Odmowa dostępu dla użytkownika 'bill'@'localhost' (przy użyciu hasła:TAK)

  3. zapytanie wybierające mysql w szeregowanej tablicy

  4. aktualizowanie kolumn o numer kolejny mysql

  5. MySQL - zignoruj ​​błąd wstawiania:zduplikowany wpis