Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อะไรคือผลกระทบต่อผลลัพธ์ของฟังก์ชัน MySQL LAST_INSERT_ID() ในกรณีของการแทรกแบบหลายแถว


ดังที่เราทราบแล้วว่าฟังก์ชัน MySQL LAST_INSERT_ID() ส่งคืนหมายเลขลำดับที่สร้างล่าสุด แต่ในกรณีที่มีการแทรกหลายแถว มันจะส่งคืนหมายเลขลำดับที่สร้างโดย สำคัญที่สุด แทรกแถว

ตัวอย่าง

mysql> Insert into Student(Name) values('Ram'),('Mohan'),('Aryan');
Query OK, 3 rows affected (0.03 sec)
Records: 3 Duplicates: 0 Warnings: 0

แบบสอบถามด้านบนแทรกสามค่าในตารางนักเรียนโดยใช้แบบสอบถามแบบแทรกหลายแถว ค่าของคอลัมน์ 'Id' สามารถตรวจสอบได้ด้วยแบบสอบถามต่อไปนี้ -

mysql> Select * from Student;

+----+-------+
| Id | Name  |
+----+-------+
| 1 | Raman  |
| 2 | Rahul  |
| 3 | Ram    |
| 4 | Mohan  |
| 5 | Aryan  |
+----+-------+

5 rows in set (0.00 sec)

มันหมายความว่า Last_Insert_Id() ต้องคืนค่า 5 เป็นเอาต์พุต แต่อย่างที่เราเห็นมันคืนค่า 3 ดังต่อไปนี้ -

mysql> Select Last_Insert_Id();

+------------------+
| Last_Insert_Id() |
+------------------+
| 3                |
+------------------+

1 row in set (0.00 sec)

ส่งกลับค่า 3 เพราะ 3 เป็นค่าของแถวที่แทรกอยู่เหนือสุดโดยมีข้อความค้นหาแทรกแถวหลายแถวอยู่ด้านบน