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 ?

Comment récupérer les identifiants générés automatiquement après une insertion groupée dans MySQL ?

DDD
Libérer: 2024-12-28 09:34:09
original
634 Les gens l'ont consulté

How to Retrieve Auto-Generated IDs After Bulk Insertion in MySQL?

Insertion groupée avec récupération d'ID dans MySQL

L'insertion de plusieurs lignes dans une table MySQL et la récupération des nouveaux ID sont une exigence courante qui peut ne pas être immédiatement évident à mettre en œuvre. Ce document explique comment y parvenir à l'aide des fonctions LAST_INSERT_ID() et ROW_COUNT() de MySQL, en particulier lors de l'utilisation du moteur de stockage InnoDB.

Génération séquentielle d'ID d'InnoDB

Lors de l'utilisation le moteur de stockage InnoDB avec MySQL, les insertions en masse maintiennent l'attribution séquentielle des ID AUTO INCREMENT, étant donné que le innodb_autoinc_lock_mode est défini sur 0 (traditionnel) ou 1 (consécutif).

Récupération d'un tableau d'ID

Pour récupérer un tableau d'ID après une insertion groupée, suivez ces étapes :

  1. Exécuter l'insertion groupée requête.
  2. Obtenez le premier ID en utilisant LAST_INSERT_ID().
  3. Calculez le dernier ID en ajoutant ROW_COUNT()-1 au premier ID.
  4. Générez un tableau d'ID du premier au dernier identifiant progressivement.

Exemple :

-- Insert bulk rows
INSERT INTO table_name (column1, column2) VALUES (val1, val2), (val3, val4), (val5, val6);

-- Get the first ID
SET @first_id = LAST_INSERT_ID();

-- Get the number of rows inserted
SET @num_rows = ROW_COUNT();

-- Create an array of IDs
SET @ids = ARRAY();

-- Populate the array
WHILE (@i < @num_rows) DO
  SET @ids[@i] = @first_id + @i;
  SET @i = @i + 1;
END WHILE;
Copier après la connexion

Cette technique fournit efficacement un tableau d'identifiants nouvellement générés après une insertion groupée, permettant un traitement ultérieur ou une utilisation dans la logique de l'application.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal