cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memasukkan berbilang baris dalam jadual MySQL dan mengembalikan ID baharu?

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粉373990857P粉373990857226 hari yang lalu405

membalas semua(2)saya akan balas

  • P粉561438407

    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

    balas
    0
  • P粉775723722

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

    balas
    0
  • Batalbalas