Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah `LAST_INSERT_ID()` Berfungsi dengan Penyata `INSERT` Berbilang Rekod dalam MySQL?

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

DDD
DDDasal
2024-11-17 10:45:04249semak imbas

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);

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!

Kenyataan:
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