LAST_INSERT_ID() Gelagat dengan Penyataan INSERT Berbilang Rekod dalam MySQL
Fungsi LAST_INSERT_ID() MySQL mendapatkan semula ID yang dijana untuk baris terakhir yang dimasukkan. Tingkah laku ini mungkin berbeza apabila menggunakan pernyataan INSERT satu rekod berbanding dengan pernyataan INSERT berbilang rekod.
Pernyataan INSERT Rekod Tunggal
Dengan INSERT satu rekod kenyataan, LAST_INSERT_ID() mengembalikan ID yang dijana seperti yang diharapkan, sepadan dengan rekod terakhir yang dimasukkan.
Penyata INSERT Berbilang Rekod
Walau bagaimanapun, apabila menggunakan rekod berbilang INSERT pernyataan, LAST_INSERT_ID() mengembalikan ID yang sepadan dengan baris pertama yang dimasukkan. Tingkah laku ini didokumenkan secara eksplisit dalam dokumen MySQL, menekankan bahawa ia membenarkan mengeluarkan semula pernyataan INSERT yang sama dengan mudah pada pelayan lain.
Contoh
Pertimbangkan INSERT berbilang rekod berikut pernyataan:
INSERT INTO people (name,age) VALUES ('William',25), ('Bart',15), ('Mary',12);
Selepas penyataan ini dilaksanakan, LAST_INSERT_ID() akan mengembalikan 1, bukan 3, menunjukkan ID yang dijana untuk rekod pertama ('William') dimasukkan.
Penaakulan
Tingkah laku ini memastikan ketekalan data merentas pelayan. Jika LAST_INSERT_ID() mengembalikan ID untuk baris terakhir yang disisipkan dalam pernyataan berbilang rekod, pernyataan INSERT tidak akan dapat dihasilkan semula pada pelayan lain yang memberikan ID berbeza kepada baris yang sama.
Atas ialah kandungan terperinci Bagaimanakah `LAST_INSERT_ID()` Berfungsi dengan Penyata `INSERT` Berbilang Rekod dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!