Rumah > pangkalan data > tutorial mysql > Bagaimanakah LAST_INSERT_ID() Berkelakuan dalam Pernyataan INSERT Berbilang Baris dalam MySQL?

Bagaimanakah LAST_INSERT_ID() Berkelakuan dalam Pernyataan INSERT Berbilang Baris dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-14 20:14:02
asal
815 orang telah melayarinya

How Does LAST_INSERT_ID() Behave in Multi-Row INSERT Statements in MySQL?

Mengembalikan ID Sisipan Terakhir dalam Penyataan INSERT Berbilang Baris Menggunakan LAST_INSERT_ID() dalam MySQL

Apabila melaksanakan berbilang sisipan rekod dalam MySQL, memahami tingkah laku fungsi LAST_INSERT_ID() menjadi penting. Tidak seperti sisipan satu baris yang menyediakan ID baris yang disisipkan, LAST_INSERT_ID() berkelakuan berbeza dengan pernyataan INSERT berbilang baris.

Sebagai contoh, pertimbangkan pertanyaan berikut:

INSERT INTO people (name, age)
VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
Salin selepas log masuk

Selepas melaksanakan pernyataan ini, seseorang mungkin menjangkakan fungsi LAST_INSERT_ID() untuk mengembalikan ID baris terakhir yang dimasukkan (3). Walau bagaimanapun, tingkah laku LAST_INSERT_ID() menyimpang daripada jangkaan ini.

LAST_INSERT_ID() Mengembalikan ID Sisipan Pertama

Dalam konteks kenyataan INSERT berbilang rekod, LAST_INSERT_ID( ) mengembalikan ID yang dijana untuk baris pertama yang dimasukkan sahaja. Tingkah laku ini didokumenkan secara eksplisit dalam dokumentasi MySQL:

Important
If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
Salin selepas log masuk

Keputusan reka bentuk ini memastikan pernyataan INSERT yang sama boleh diterbitkan semula dengan mudah pada pelayan lain tanpa sebarang masalah. Dengan menggunakan ID baris pertama yang disisipkan, menghasilkan semula gelagat yang dimaksudkan menjadi mudah.

Implikasi untuk Reka Bentuk Kod

Memahami gelagat ini adalah penting apabila mereka bentuk kod yang bergantung pada fungsi LAST_INSERT_ID() untuk sisipan berbilang baris. Pembangun harus mengelak daripada bergantung pada LAST_INSERT_ID() untuk menentukan ID khusus baris yang disisipkan dalam senario sedemikian. Pendekatan alternatif untuk menjejak atau mengakses ID baris dalam sisipan berbilang baris harus dipertimbangkan.

Atas ialah kandungan terperinci Bagaimanakah LAST_INSERT_ID() Berkelakuan dalam Pernyataan INSERT Berbilang Baris 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