Rumah > Soal Jawab > teks badan
Biasanya saya boleh memasukkan baris ke dalam jadual MySQL dan mendapat last_insert_id
. Tetapi sekarang, saya ingin memasukkan secara pukal banyak baris ke dalam jadual dan mendapatkan pelbagai ID. Adakah sesiapa tahu bagaimana saya boleh melakukan ini?
Ada beberapa soalan yang serupa, tetapi tidak betul-betul sama. Saya tidak mahu memasukkan ID baharu ke dalam mana-mana jadual sementara, saya hanya mahu mendapatkan kembali pelbagai ID.
Bolehkah saya mendapatkan lastInsertId daripada sisipan pukal?
Pernyataan pilih sisip berbilang baris MySQL dengan last_insert_id()
P粉5614384072024-04-07 09:07:17
Satu-satunya cara yang saya fikir ia boleh dilakukan ialah menyimpan pengecam unik (panduan) untuk setiap set baris yang dimasukkan Kemudian pilih ID baris. Contohnya:
INSERT INTO t1 (SELECT col1,col2,col3,'3aee88e2-a981-1027-a396-84f02afe7c70' FROM a_very_large_table); COMMIT; SELECT id FROM t1 WHERE guid='3aee88e2-a981-1027-a396-84f02afe7c70';
Anda juga boleh menggunakan uuid()
untuk menjana panduan dalam pangkalan data
P粉7757237222024-04-07 00:12:23
Urutan lama, tetapi baru meneliti perkara ini, jadi inilah: Jika anda menggunakan InnoDB pada versi terbaru MySQL, anda boleh menggunakan LAST_INSERT_ID()
和 ROW_COUNT()
untuk mendapatkan senarai ID.
InnoDB menjamin nombor turutan yang meningkat secara automatik apabila melakukan sisipan pukal, jika innodb_autoinc_lock_mode
ditetapkan kepada 0 (warisan) atau 1 (berterusan).
Jadi anda boleh dapatkan ID LAST_INSERT_ID()
获取第一个 ID,并通过添加 ROW_COUNT()-1
terakhir daripada .