Bagaimana untuk memasukkan berbilang baris dalam jadual MySQL dan mengembalikan ID baharu?
P粉373990857
P粉373990857 2024-04-06 10:03:44
0
2
403

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粉373990857
P粉373990857

membalas semua(2)
P粉561438407

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粉775723722

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()-1terakhir daripada .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan