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

chèn vào bản cập nhật khóa trùng lặp

Tôi tin rằng câu trả lời cho điều này được giải quyết trong MySQL tài liệu :

Nếu bảng chứa AUTO_INCREMENT cột và INSERT ... UPDATE chèn một hàng, LAST_INSERT_ID() hàm trả về AUTO_INCREMENT giá trị. Nếu câu lệnh cập nhật một hàng thay thế, LAST_INSERT_ID() không có ý nghĩa. Tuy nhiên, bạn có thể giải quyết vấn đề này bằng cách sử dụng LAST_INSERT_ID(expr) . Giả sử id đó là AUTO_INCREMENT cột. Để tạo LAST_INSERT_ID() có ý nghĩa đối với các bản cập nhật, hãy chèn các hàng như sau:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chart.js v2.6:Thêm mũi tên vào giá trị đầu ra của biểu đồ hình tròn

  2. Tôi có nên tắt chế độ nghiêm ngặt của MySQL không?

  3. Umlauts Đức trong MYSQL INSERT

  4. Sự khác biệt giữa SQL và MySQL là gì

  5. mysql trong danh sách chỉ xác nhận id đầu tiên trong danh sách. có thể là một vấn đề đốm màu