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

Thêm vào trường cơ sở dữ liệu thay vì ghi đè nó (hàm MySQL UPDATE)

Cố gắng sử dụng INSERT ... ON DUPLICATE KEY UPDATE

Nếu bạn chỉ định CẬP NHẬT KHÓA DUPLICATE và một hàng được chèn vào sẽ gây ra giá trị trùng lặp trong chỉ mục DUY NHẤT hoặc KHÓA CHÍNH, MySQL sẽ thực hiện CẬP NHẬT hàng cũ.

Ví dụ:nếu cột a được khai báo là UNIQUE và chứa giá trị 1, hai câu lệnh sau có tác dụng tương tự:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

(Các hiệu ứng không giống nhau đối với một bảng trong đó a là cột tăng tự động. Với cột tăng tự động, một INSERT câu lệnh tăng giá trị tăng tự động nhưng UPDATE không.)

Mệnh đề ON DUPLICATE KEY UPDATE có thể chứa nhiều phép gán cột, được phân tách bằng dấu phẩy.

Với CẬP NHẬT KHÓA KÉP BẬT, giá trị hàng bị ảnh hưởng trên mỗi hàng là 1 nếu hàng được chèn dưới dạng hàng mới và 2 nếu hàng hiện có được cập nhật.

Hy vọng điều này sẽ giúp ích.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python - Trình kết nối SQL:Cập nhật không hoạt động

  2. Unix Dấu thời gian bigint (20)

  3. Cách mã hóa (utf8mb4) bằng Python

  4. gặp lỗi - SQLSTATE [21000]:Vi phạm bản số:1241 Toán hạng phải chứa 1 (các) cột

  5. Chèn đường dẫn của tệp bằng \\ trong mysql bằng java