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

MySQL wstawia nowy wiersz tylko wtedy, gdy kombinacja kolumn (która pozwala na duplikaty) jest unikalna

Utwórz złożony unikalny indeks. Umożliwi to dowolną liczbę duplikatów w poszczególnych polach, ale kombinacja musi być unikalna.

CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);

...i użyj INSERT IGNORE do wstawienia, jeśli unikalny indeks nie jest naruszony. Jeśli tak, po prostu zignoruj ​​wstawkę.

INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);

SQLfiddle do testowania .

Jeśli chcesz wstawić, o ile nie ma duplikatu, i zaktualizować, jeśli jest, możesz również użyć INSERT INTO ... ON DUPLICATE KEY UPDATE;

INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
  ON DUPLICATE KEY UPDATE field4=field4+1;

Kolejny SQLfiddle .




  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 zaimportować bazę danych za pomocą wiersza poleceń

  2. Kod błędu MySQL:1175 podczas aktualizacji (MySQL-Workbench a konsola)

  3. MySQL TEXT vs BLOB vs CLOB

  4. Uzyskaj wyniki z MySQL za pomocą PDO

  5. Pobieranie wszystkich dzieci i dzieci od rodzica JPA