Mengambil ID Terakhir Dimasukkan dalam MySQL untuk Sisipan Berbilang Jadual
Apabila bekerja dengan berbilang jadual pangkalan data, selalunya perlu mendapatkan semula yang terakhir dimasukkan ID selepas dimasukkan ke dalam beberapa jadual. Satu senario biasa melibatkan mendapatkan semula ID yang disisipkan terakhir daripada jadual pertama, walaupun jika sisipan berikutnya dibuat ke dalam jadual lain.
Pertimbangkan pertanyaan SQL berikut:
INSERT INTO table1 (title,userid) VALUES ('test',1); INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1); SELECT LAST_INSERT_ID();
Secara lalai, LAST_INSERT_ID( ) akan mengembalikan ID yang dimasukkan terakhir untuk sisipan jadual terbaharu, dalam kes ini table2. Untuk mendapatkan semula ID yang disisipkan terakhir daripada jadual1, terdapat beberapa kaedah yang tersedia:
Menyimpan ID yang Disisipkan Terakhir dalam Pembolehubah:
Masukkan nilai ke dalam jadual1 dan simpan ID yang terakhir dimasukkan dalam pembolehubah:
SET @last_id_in_table1 = LAST_INSERT_ID();
Sisipan seterusnya ke dalam jadual lain tidak akan menjejaskan pembolehubah ini, membolehkan anda merujuk ID terakhir yang dimasukkan ke dalam jadual1 kemudian.
Mendapatkan ID Maksimum:
Pendekatan alternatif ialah mencari ID maksimum daripada jadual1 selepas sisipan telah dibuat:
SELECT MAX(id) FROM table1;
Ini akan mengembalikan ID yang terakhir dimasukkan, walaupun jadual lain telah dimasukkan ke dalam Sementara itu.
Nota: Apabila mendapatkan ID maksimum, adalah penting untuk mempertimbangkan kemungkinan keadaan perlumbaan. Jika proses atau sambungan lain memasukkan nilai ke dalam jadual1 secara serentak, ID maksimum yang diambil mungkin tidak menggambarkan nilai yang terakhir dimasukkan dengan tepat.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Terakhir yang Disisipkan dalam MySQL Selepas Sisipan Berbilang Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!