LAST_INSERT_ID() Gelagat dengan Penyataan INSERT Berbilang Rekod
Apabila memasukkan berbilang rekod ke dalam jadual MySQL dengan satu pernyataan INSERT, LAST_INSERT_ID() lazimnya mengembalikan ID rekod pertama yang dimasukkan dan bukannya yang terakhir.
Seperti yang disahkan dalam dokumentasi MySQL, tingkah laku ini memastikan bahawa pernyataan INSERT boleh diterbitkan semula dengan tepat pada pelayan lain. Nilai ID untuk rekod berikutnya tidak dikembalikan kerana ia tidak boleh diberikan secara konsisten merentas pelayan pangkalan data yang berbeza.
Contoh:
Pertimbangkan pernyataan INSERT berikut:
INSERT INTO people (name, age) VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
Selepas melaksanakan pernyataan ini, LAST_INSERT_ID() akan mengembalikan 1, ID rekod pertama yang dimasukkan (William). Ini ialah gelagat yang dijangkakan dan memastikan bahawa pernyataan itu boleh direplikasi tanpa hasil yang tidak diingini.
Implikasi:
Dalam kod yang mengendalikan berbilang sisipan rekod, penting untuk diketahui tingkah laku ini dan mengendalikan nilai ID dengan sewajarnya. Contohnya, jika anda perlu mendapatkan semula ID semua rekod yang dimasukkan, anda mungkin perlu menggunakan pendekatan lain, seperti mengembalikan kiraan baris yang dimasukkan dan kemudian mendapatkan semula ID secara individu.
Atas ialah kandungan terperinci Bagaimanakah LAST_INSERT_ID() berkelakuan dengan berbilang kenyataan INSERT rekod dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!