Bagaimanakah LAST_INSERT_ID() berkelakuan dengan berbilang kenyataan INSERT rekod dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-11-17 11:48:01
asal
496 orang telah melayarinya

How does LAST_INSERT_ID() behave with multiple record INSERT statements in MySQL?

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan