Maison > base de données > tutoriel mysql > le corps du texte

Comment `LAST_INSERT_ID()` fonctionne-t-il avec les instructions `INSERT` à enregistrements multiples dans MySQL ?

DDD
Libérer: 2024-11-17 10:45:04
original
247 Les gens l'ont consulté

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

Comportement LAST_INSERT_ID() avec des instructions INSERT à enregistrements multiples dans MySQL

La fonction LAST_INSERT_ID() de MySQL récupère l'ID généré pour la dernière ligne insérée. Ce comportement peut différer lors de l'utilisation d'une instruction INSERT à enregistrement unique par rapport à une instruction INSERT à enregistrements multiples.

Instructions INSERT à enregistrement unique

Avec un INSERT à enregistrement unique instruction, LAST_INSERT_ID() renvoie l'ID généré comme prévu, correspondant au dernier enregistrement inséré.

Instructions INSERT à enregistrements multiples

Cependant, lors de l'utilisation d'une instruction INSERT à enregistrements multiples, LAST_INSERT_ID() renvoie l'ID correspondant à la première ligne insérée. Ce comportement est explicitement documenté dans la documentation MySQL, soulignant qu'il permet de reproduire facilement la même instruction INSERT sur un autre serveur.

Exemple

Considérez l'INSERT à enregistrements multiples suivant déclaration :

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

Après l'exécution de cette instruction, LAST_INSERT_ID() renverra 1, pas 3, indiquant l'ID généré pour le premier enregistrement (« William ») inséré.

Raisonnement

Ce comportement garantit la cohérence des données entre les serveurs. Si LAST_INSERT_ID() renvoyait l'ID de la dernière ligne insérée dans une instruction à enregistrements multiples, l'instruction INSERT serait non reproductible sur d'autres serveurs qui attribuent des ID différents aux mêmes lignes.

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