Như chúng ta biết rằng hàm MySQL LAST_INSERT_ID () trả về số thứ tự được tạo mới nhất nhưng trong trường hợp chèn nhiều hàng, nó sẽ trả về số thứ tự được tạo bởi hàng đầu hàng đã chèn.
Ví dụ
mysql> Insert into Student(Name) values('Ram'),('Mohan'),('Aryan'); Query OK, 3 rows affected (0.03 sec) Records: 3 Duplicates: 0 Warnings: 0
Truy vấn ở trên chèn ba giá trị vào bảng Sinh viên với sự trợ giúp của truy vấn chèn nhiều hàng. Giá trị của Cột ‘Id’ có thể được kiểm tra với sự trợ giúp của truy vấn sau -
mysql> Select * from Student; +----+-------+ | Id | Name | +----+-------+ | 1 | Raman | | 2 | Rahul | | 3 | Ram | | 4 | Mohan | | 5 | Aryan | +----+-------+ 5 rows in set (0.00 sec)
Có nghĩa là Last_Insert_Id () phải trả về 5 dưới dạng đầu ra nhưng như chúng ta thấy, nó trả về giá trị 3 như sau -
mysql> Select Last_Insert_Id(); +------------------+ | Last_Insert_Id() | +------------------+ | 3 | +------------------+ 1 row in set (0.00 sec)
Nó trả về giá trị 3 vì 3 là giá trị của hàng được chèn nhiều nhất có truy vấn chèn nhiều hàng ở trên.