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

Có đúng về mặt khái niệm khi thực hiện SELECT MAX (id), v.v. để tìm hàng được chèn cuối cùng không?

Điều này có vẻ chủ quan, nhưng tôi sẽ nói không, nó không đúng về mặt khái niệm, bởi vì:

  • bạn muốn hàng được chèn gần đây nhất
  • nhưng truy vấn của bạn xem xét id tối đa giá trị

Có, có một số mối quan hệ giữa id tối đa và lần chèn gần đây nhất, nhưng hãy xem xét những điều sau:

  • điều gì sẽ xảy ra nếu hàng được chèn gần đây nhất bị xóa?

Trả lời trên MySQL:bạn nhận được các kết quả khác nhau. Lưu ý rằng thậm chí không cần phải có đa luồng hoặc nhiều quy trình để điều này không thành công. Đó là bởi vì chúng là hai thứ khác nhau (phải thừa nhận rằng chúng thường có thể tạo ra các kết quả giống nhau).

select max(id) from <tablename>

so với

select last_insert_id()

(Đoán xem cái nào đúng.)

@Dems đã chỉ ra rằng OP không rõ ràng. Tôi sẽ làm rõ ý chính của mình:

Chúng tôi đang nói về ba phần thông tin khác nhau:

  • id tối đa giá trị
  • id trong số hàng được chèn gần đây nhất, cụ thể cho một phiên
  • id trong số hàng được chèn gần đây nhất vào bảng (bất kể phiên)

Điều nguy hiểm là đôi khi, truy vấn một người sẽ đưa ra câu trả lời đúng cho người khác - nhưng không phải lúc nào cũng .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tại sao truy vấn mysql này không hoạt động?

  2. Cách tính số người dùng hoạt động hàng tuần (WAU) trong MySQL

  3. MySQL xử lý chèn đồng thời như thế nào?

  4. Nối các bảng trong MySql với một trường chung nhưng các giá trị khác nhau cho trường chung

  5. Java PreparedStatement truy xuất ID được chèn lần cuối