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()
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:
Anda juga boleh menggunakan
uuid()
untuk menjana panduan dalam pangkalan dataUrutan 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 IDLAST_INSERT_ID()
获取第一个 ID,并通过添加ROW_COUNT()-1
terakhir daripada .