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

Wstaw mysql tylko wtedy, gdy tabela jest pusta

W wyciągu wystąpił błąd składni:

INSERT INTO `statuses`
    (SELECT  'Something', 'Something else', 123
     WHERE NOT EXISTS (SELECT * FROM `statuses`)
    ) union all
    (SELECT 'Something', 'Something else', 234
     WHERE NOT EXISTS (SELECT * FROM `statuses`)
    );

Musisz powtórzyć where w tym przypadku dwa razy, raz dla każdego podzapytania. Możesz także zrobić:

INSERT INTO `statuses`
    select t.*
    from ((SELECT  'Something' as col1, 'Something else' as col2, 123 as col3
          ) union all
          (SELECT 'Something', 'Something else', 234
          )
         ) t
    WHERE NOT EXISTS (SELECT * FROM `statuses`);

W tej wersji musisz przypisać nazwy do kolumn.

Możesz też po prostu użyć dwóch oddzielnych instrukcji wstawiania.



  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 napisać to złożone zapytanie w codeigniter?

  2. Losowy wiersz z dużego wyniku zapytania

  3. obraz nie jest pobierany z bazy danych przy użyciu ścieżki

  4. Dlaczego mój skrypt kopii zapasowej bazy danych nie działa w php?

  5. mySQL wybierz W zakresie