Maison > base de données > tutoriel mysql > Comment LAST_INSERT_ID() se comporte-t-il avec plusieurs instructions INSERT d'enregistrement dans MySQL ?

Comment LAST_INSERT_ID() se comporte-t-il avec plusieurs instructions INSERT d'enregistrement dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-17 11:48:01
original
595 Les gens l'ont consulté

How does LAST_INSERT_ID() behave with multiple record INSERT statements in MySQL?

Comportement de LAST_INSERT_ID() avec des instructions INSERT à plusieurs enregistrements

Lors de l'insertion de plusieurs enregistrements dans une table MySQL avec une seule instruction INSERT, LAST_INSERT_ID() renvoie généralement l'ID du premier enregistrement inséré plutôt que du dernier.

Comme confirmé dans la documentation MySQL, ce comportement garantit que l'instruction INSERT peut être reproduite avec précision sur d'autres serveurs. La valeur d'ID des enregistrements suivants n'est pas renvoyée car elle ne peut pas être attribuée de manière cohérente sur différents serveurs de base de données.

Exemple :

Considérez l'instruction INSERT suivante :

INSERT INTO people (name, age)
VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
Copier après la connexion

Après avoir exécuté cette instruction, LAST_INSERT_ID() renverra 1, l'ID du premier enregistrement inséré (William). Il s'agit du comportement attendu et garantit que l'instruction peut être répliquée sans résultats inattendus.

Implications :

Dans le code qui gère plusieurs insertions d'enregistrements, il est important d'en être conscient de ce comportement et gérer les valeurs d'ID en conséquence. Par exemple, si vous devez récupérer les ID de tous les enregistrements insérés, vous devrez peut-être utiliser une autre approche, telle que renvoyer le nombre de lignes insérées, puis récupérer les ID individuellement.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal