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

MySQL TRÊN KHÓA DUPLICATE - id chèn lần cuối?

Hãy xem trang này: https:// web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Ở cuối trang, họ giải thích cách bạn có thể làm cho LAST_INSERT_ID có ý nghĩa đối với các bản cập nhật bằng cách chuyển một biểu thức cho hàm MySQL đó.

Từ ví dụ tài liệu MySQL:

Nếu bảng chứa cột AUTO_INCREMENT và INSERT ... UPDATE chèn một hàng, hàm LAST_INSERT_ID () trả về giá trị AUTO_INCREMENT. 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à cột AUTO_INCREMENT. Để làm cho 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. Giảm giá hàng tháng của MySQL trong 12 tháng qua, bao gồm cả những tháng không có Giảm giá

  2. Cách tính phần trăm cột trong MySQL

  3. Cách đếm các mục trong danh sách MySQL được phân tách bằng dấu phẩy

  4. Cách nhập tệp CSV vào bảng MySQL

  5. Rails, MySQL và Snow Leopard