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

sql if w instrukcji insert bez select

Zakładam, że twój stół nazywa się tbl.

INSERT INTO tbl (campoX ) 
    SELECT 'X' FROM DUAL 
    WHERE NOT EXISTS( 
                      SELECT campoX from tbl 
                      WHERE campoX ='X'
                     );

DUAL służy wyłącznie wygodzie osób, które wymagają, aby wszystkie instrukcje SELECT zawierały klauzule FROM i ewentualnie inne klauzule. MySQL może ignorować klauzule. MySQL nie wymaga FROM DUAL, jeśli nie ma odniesienia do żadnych tabel.

Jak niektórzy wspomnieli, możesz użyć INSERT IGNORE oświadczenie tutaj JEŚLI twój campoX jest polem unigue lub kluczem podstawowym.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:wykonanie polecenia odrzuconego użytkownikowi ''@'localhost' z powodu rutynowego błędu

  2. Problem z połączeniem programu Java i MySQL:Nie znaleziono odpowiedniego sterownika

  3. Laravel SQLSTATE[22007]:Nieprawidłowy format daty i godziny:1292 Nieprawidłowa wartość daty i godziny:„2019-03-10 02:00:39” dla kolumny „updated_at” (czas letni?)

  4. MySQL wyłącza wszystkie wyzwalacze

  5. JEŚLI warunek Wykonaj zapytanie, w przeciwnym razie wykonaj inne zapytanie