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

Warunkowe wstawianie MySQL

Jeśli Twój DBMS nie nakłada ograniczeń na wybór tabeli podczas wykonywania wstawiania, spróbuj:

INSERT INTO x_table(instance, user, item) 
    SELECT 919191, 123, 456
        FROM dual
        WHERE NOT EXISTS (SELECT * FROM x_table
                             WHERE user = 123 
                               AND item = 456)

W tym dual jest tabelą z tylko jednym wierszem (pierwotnie w Oracle, teraz także w mysql). Logika polega na tym, że instrukcja SELECT generuje pojedynczy wiersz danych z wymaganymi wartościami, ale tylko wtedy, gdy wartości nie zostały jeszcze znalezione.

Alternatywnie spójrz na instrukcję MERGE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLSTATE[42000]:Błąd składni lub naruszenie dostępu:1064 Wystąpił błąd w składni SQL — PHP — PDO

  2. Zwracanie zestawu wyników

  3. Jak obliczyć procentowy wzrost z tygodnia na tydzień w MySQL?

  4. Jak zaimportować plik CSV do tabeli MySQL

  5. Załaduj dane CSV do MySQL w Pythonie