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

MySQL:chèn vào nơi không tồn tại

Sử dụng chèn insert . . . select :

INSERT INTO USER (name, email)
    SELECT 'John', '[email protected]'
    WHERE NOT EXISTS
        (SELECT id FROM USER WHERE email = '[email protected]');

Tôi sẽ viết cái này là:

INSERT INTO USER (name, email)
    SELECT name, email
    FROM (SELECT 'John' as name, '[email protected]' as email) t
    WHERE NOT EXISTS (SELECT 1 FROM USER u WHERE u.email = t.email);

Nhưng một cách tiếp cận tốt hơn có lẽ là chỉ đặt một chỉ mục duy nhất để cơ sở dữ liệu bảo vệ dữ liệu:

create unique index idx_users_email on user(email);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn JPA khởi động mùa xuân trong TABLE với tên viết hoa với Hibernate

  2. Truy vấn chậm:tìm sự khác biệt giữa các giá trị dựa trên giá trị tối thiểu và tối đa trên một cột khác cho mỗi nhóm

  3. Loại bỏ dấu phẩy cuối cùng trong vòng lặp while - PHP

  4. sự cố mysql_insert_id khi chèn dữ liệu đồng thời

  5. SYSDATE () so với NOW () trong MySQL:Sự khác biệt là gì?