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

zaktualizuj, jeśli istnieją dwa pola, wstaw, jeśli nie (MySQL)

Unikalny indeks w MySQL nie musi znajdować się w pojedynczej kolumnie. Możesz dodać indeks UNIQUE do wielu kolumn, po prostu określając więcej kolumn w ALTER TABLE..ADD UNIQUE oświadczenie:

ALTER TABLE myTable ADD UNIQUE (
    mykey,
    myfoo
);

Teraz możesz użyć zwykłego INSERT INTO...ON DUPLICATE KEY oświadczenie.

Demo SQLFiddle (pamiętaj, że wiele powtarzających się wartości nie jest dodawanych – wszystkie inne są )

Uwaga :

Jeśli któryś z nich jest NULL, nie być liczone jako unikatowe. mykey będąc „bar” i myfoo bycie NULL może zostać dodane do nieskończoności, nawet jeśli mają „te same” wartości (NULL nie jest tak naprawdę wartością).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql wybierz elementy pasujące do tablicy i wyświetl je w rzędzie

  2. mysqld_safe Katalog '/var/run/mysqld' dla pliku gniazda UNIX nie istnieje

  3. MySQL:Jak wybrać rekordy na ten tydzień?

  4. Błąd składni procedury składowanej MySQL po BEGIN

  5. Jak dołączyć do tabeli kategorii dla rodziców w zapytaniu SQL?