Maison >base de données >tutoriel mysql >Comment récupérer les identifiants générés automatiquement après une insertion groupée dans MySQL ?
Insertion groupée avec identifiants renvoyés dans MySQL
L'insertion de plusieurs lignes dans une table MySQL est une tâche courante. Cependant, si vous devez récupérer les ID nouvellement générés après l'insertion groupée, la fonction standard LAST_INSERT_ID() ne suffira pas.
Solution InnoDB
Si votre table utilise le moteur de stockage InnoDB (un paramètre recommandé pour la plupart des charges de travail), MySQL fournit une solution utilisant les fonctions LAST_INSERT_ID() et ROW_COUNT(). Voici comment cela fonctionne :
Dans InnoDB, les insertions groupées utilisant AUTO INCREMENT garantissent des numéros séquentiels lorsque innodb_autoinc_lock_mode est défini sur 0 (traditionnel) ou 1 (consécutif). Cela signifie que vous pouvez récupérer le premier ID en utilisant LAST_INSERT_ID() et le dernier ID en ajoutant ROW_COUNT() - 1.
Par exemple :
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;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!