Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jalankan penyisipan mysql hanya jika tabel kosong

Anda memiliki kesalahan sintaks dalam pernyataan Anda:

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`)
    );

Anda perlu mengulang where dua kali dalam kasus ini, sekali untuk setiap subquery. Anda juga dapat melakukan:

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`);

Dalam versi ini, Anda perlu menetapkan nama ke kolom.

Atau, Anda bisa menggunakan dua pernyataan sisipan yang terpisah.



  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 tidak menggunakan indeks dalam kueri dengan offset

  2. Mana yang lebih cepat — INSTR atau LIKE?

  3. Kerusakan basis data dengan MariaDB :Tabel tidak ada di mesin

  4. php- dapatkan id sisipan terakhir

  5. MySQL - mysqldump --rutin hanya mengekspor 1 prosedur tersimpan (berdasarkan nama) dan tidak setiap rutin