Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chỉ thực thi chèn mysql nếu bảng trống

Bạn có lỗi cú pháp trong câu lệnh của mình:

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

Bạn cần lặp lại where trong trường hợp này hai lần, một lần cho mỗi truy vấn con. Bạn cũng có thể làm:

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

Trong phiên bản này, bạn cần gán tên cho các cột.

Hoặc, bạn có thể chỉ sử dụng hai câu lệnh chèn riêng biệt.



  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 - bỏ qua khóa trong my.cnf làm gì?

  2. Chuyển đổi chuỗi DateTime trong Python thành số nguyên mili giây

  3. Hàm MySQL COS () - Trả về Cosine của một số trong MySQL

  4. quan hệ cha mẹ con cái

  5. MySQL - chọn các nhóm có các giá trị bao gồm một tập hợp