Maison > base de données > tutoriel mysql > Comment récupérer le dernier ID inséré dans MySQL après des insertions multi-tables ?

Comment récupérer le dernier ID inséré dans MySQL après des insertions multi-tables ?

Patricia Arquette
Libérer: 2024-12-10 14:24:12
original
893 Les gens l'ont consulté

How to Retrieve the Last Inserted ID in MySQL After Multi-Table Inserts?

Récupération du dernier ID inséré dans MySQL pour les insertions multi-tables

Lorsque vous travaillez avec plusieurs tables de base de données, il est souvent nécessaire de récupérer la dernière insérée ID après insertion dans plusieurs tables. Un scénario courant consiste à récupérer le dernier ID inséré dans la première table, même si des insertions ultérieures sont effectuées dans d'autres tables.

Considérez la requête SQL suivante :

INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1);
SELECT LAST_INSERT_ID();
Copier après la connexion

Par défaut, LAST_INSERT_ID( ) renverra le dernier ID inséré pour l'insertion de table la plus récente, dans ce cas, table2. Pour récupérer le dernier ID inséré dans la table1, plusieurs méthodes sont disponibles :

Stockage du dernier ID inséré dans une variable :

Insérez une valeur dans la table1 et stockez le dernier ID inséré dans une variable :

SET @last_id_in_table1 = LAST_INSERT_ID();
Copier après la connexion

Les insertions ultérieures dans d'autres tables n'affecteront pas cette variable, vous permettant de référencer le dernier ID inséré dans la table1 plus tard.

Récupération de l'ID maximum :

Une approche alternative consiste à trouver l'ID maximum de la table1 une fois les insertions effectuées :

SELECT MAX(id) FROM table1;
Copier après la connexion

Cela renverra le dernier ID inséré, même si d'autres tables ont été insérées dans le en attendant.

Remarque : Lors de la récupération de l'ID maximum, il est important de prendre en compte les conditions de concurrence potentielles. Si un autre processus ou connexion insère simultanément une valeur dans la table1, l'ID maximum récupéré peut ne pas refléter avec précision la dernière valeur insérée.

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