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();
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();
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;
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!