Sisip Pukal dengan ID Dikembalikan dalam MySQL
Memasukkan berbilang baris ke dalam jadual MySQL ialah tugas biasa. Walau bagaimanapun, jika anda perlu mendapatkan semula ID yang baru dijana selepas sisipan pukal, fungsi LAST_INSERT_ID() standard tidak akan mencukupi.
InnoDB Solution
Jika jadual anda menggunakan enjin storan InnoDB (tetapan yang disyorkan untuk kebanyakan beban kerja), MySQL menyediakan penyelesaian menggunakan LAST_INSERT_ID() dan ROW_COUNT() fungsi. Begini cara ia berfungsi:
Dalam InnoDB, sisipan pukal menggunakan AUTO INCREMENT menjamin nombor berjujukan apabila innodb_autoinc_lock_mode ditetapkan kepada 0 (tradisional) atau 1 (berturut-turut). Ini bermakna anda boleh mendapatkan semula ID pertama menggunakan LAST_INSERT_ID() dan ID terakhir dengan menambahkan ROW_COUNT() - 1.
Contohnya:
INSERT INTO example_table (name) VALUES ('John'), ('Mary'), ('Bob'); -- Get first ID SELECT LAST_INSERT_ID() AS first_id; -- Get row count SELECT ROW_COUNT() AS row_count; -- Get last ID SELECT LAST_INSERT_ID() + ROW_COUNT() - 1 AS last_id;
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Auto-Dijana Selepas Sisipan Pukal dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!