Rumah  >  Artikel  >  pangkalan data  >  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
Linda Hamiltonasal
2024-11-14 20:14:02728semak imbas

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

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.

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!

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