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

Tạo nếu một mục không tồn tại, nếu không, hãy cập nhật?

Nhiều nhà phát triển vẫn thực hiện truy vấn để kiểm tra xem một trường có trong bảng hay không và sau đó thực hiện truy vấn chèn hoặc cập nhật theo kết quả của truy vấn đầu tiên. Hãy thử sử dụng cú pháp ON DUPLICATE KEY, cách này nhanh hơn và tốt hơn rất nhiều. sau đó thực hiện 2 câu truy vấn. Có thể tìm thấy thêm thông tin tại đây

nếu bạn muốn giữ nguyên giá trị cho c, bạn có thể cập nhật với cùng giá trị đó

sự khác biệt giữa 'thay thế' và 'trên khóa trùng lặp':

nếu bảng của bạn không có khóa chính hoặc khóa duy nhất, thì việc thay thế không có ý nghĩa gì.

Bạn cũng có thể sử dụng VALUES để tránh phải chỉ định các giá trị thực hai lần. Ví dụ. thay vì

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;

bạn có thể sử dụng

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);

Trong đó VALUES(c) sẽ đánh giá đến giá trị được chỉ định phổ biến (6).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỆNH SQL BẰNG cách sử dụng các câu lệnh đã soạn sẵn

  2. Đo điểm chuẩn hiệu suất của MySQL:MySQL 5.7 so với MySQL 8.0

  3. truy vấn con trả về nhiều hơn 1 hàng

  4. VẤN ĐỀ:Mysql chuyển đổi Enum thành Int

  5. Đang tải các tệp .sql từ bên trong PHP