sql >> Databáze >  >> RDS >> Mysql

MySQL vloží nový řádek pouze v případě, že kombinace sloupců (umožňující duplikáty) je jedinečná

Vytvořte složený jedinečný index. To umožní libovolný počet duplikátů v jednotlivých polích, ale kombinace musí být jedinečná.

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

...a použijte INSERT IGNORE vložit, pokud není porušen jedinečný index. Pokud ano, jednoduše vložku ignorujte.

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

SQLfiddle pro testování .

Pokud chcete vložit, pokud neexistuje duplikát, a aktualizovat, pokud existuje, můžete také použít INSERT INTO ... ON DUPLICATE KEY UPDATE;

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

Další SQLfiddle .




  1. Jak zobrazit všechny záznamy v databázi do JTable?

  2. Výchozí hodnota pro prázdná celočíselná pole při importu dat CSV do MySQL

  3. date time pass value z pythonu do mysql

  4. SQL, Pomocná tabulka čísel