Bagaimanakah `LAST_INSERT_ID()` Berfungsi dengan Penyata `INSERT` Berbilang Rekod dalam MySQL?

DDD
Lepaskan: 2024-11-17 10:45:04
asal
247 orang telah melayarinya

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan