Récupération de la clé générée automatiquement après une instruction INSERT dans MySQL avec Python
Lors de l'exécution d'une opération INSERT dans une base de données MySQL à l'aide de Python, il est souvent nécessaire de récupérer la clé primaire ou l'ID généré automatiquement de la ligne nouvellement insérée. Cela peut être utile pour référencer la ligne insérée dans des opérations ultérieures ou pour conserver le caractère unique de la ligne.
Utilisation de curseur.lastrowid
Le connecteur Python MySQL fournit un curseur objet qui, une fois initialisé, peut être utilisé pour exécuter des instructions SQL et récupérer les données résultantes. Une fois qu'une instruction INSERT a été exécutée, l'attribut curseur.lastrowid contient la clé primaire ou l'ID généré automatiquement de la ligne nouvellement insérée.
Par exemple, considérons le code suivant :
import mysql.connector conn = mysql.connector.connect(...) cursor = conn.cursor() cursor.execute("INSERT INTO mytable(height) VALUES(%s)", (height)) inserted_id = cursor.lastrowid
Dans ce code, l'attribut lastrowid est récupéré et stocké dans la variable insert_id. Cet ID représente la clé primaire de la ligne nouvellement insérée.
Utilisation de connection.insert_id()
Alternativement, l'objet de connexion lui-même fournit un attribut insert_id qui renvoie l'ID de la dernière ligne insérée via la connexion. Cet attribut est disponible même après la fermeture du curseur.
Le code suivant montre comment utiliser connection.insert_id() :
import mysql.connector conn = mysql.connector.connect(...) cursor = conn.cursor() cursor.execute("INSERT INTO mytable(height) VALUES(%s)", (height)) inserted_id = conn.insert_id()
Indépendamment de la méthode utilisée, l'insert_id ou l'insert_id récupéré lastrowid peut être utilisé pour identifier la ligne nouvellement insérée dans la base de données.
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!