Update Table | Mise à jour de données avec Python – PostgreSQL

Dans ce tutoriel nous allons découvrir comment modifier des données dans une table PostgreSQL avec Python.

Avant d’exécuter les programmes Python suivants, assurez-vous de connaître le nom de la table PostgreSQL et les détails de colonne dans lesquels vous souhaitez modifier des données.

Pour ce tutoriel, nous allons utiliser la table « person » présente dans notre base de données PostgreSQL.
 
 
Si aucune table n’est présente dans votre base de données PostgreSQL, veuillez créer une table PostgreSQL et insérer des données dans la table PostgreSQL avec Python.
 

Les étapes pour mettre à jour des données avec Python

Pour l’instant, la table ‘person’ contient cinq lignes, alors modifions l’adresse d’un personne dont l’ID est 1. Pour exécuter la requête UPDATE à partir de Python, vous devez suivre les étapes suivantes :

  • Établissez une connexion PostgreSQL avec Python.
  • Ensuite, créez un objet curseur à l’aide de l’objet de connexion.
  • Ensuite, définissez la requête UPDATE. Ici, vous devez connaître la table et le nom de la colonne que vous souhaitez mettre à jour.
  • Exécutez la requête UPDATE à l’aide de curseur.execute()
  • Après l’exécution réussie de la requête UPDATE, n’oubliez pas de valider vos modifications dans la base de données.
  • Fermez la connexion à la base de données.
  • Capturer toutes les exceptions PostgreSQL qui peuvent survenir au cours du processus.
  • Enfin, vérifiez le résultat en sélectionnant les données d’une table PostgreSQL dans Python.

 
 

Exemple 1: Mettre à jour un seul enregistrement de la table ‘person’
import psycopg2

try:
    conn = psycopg2.connect(
					user = "postgres",
					password = "admin",
					host = "localhost",
					port = "5432",
					database = "my_db"
    )
    cur = conn.cursor()

    sql = "UPDATE person SET address = 'Paris' WHERE id = 1"
    cur.execute(sql)
    conn.commit()
    count = cur.rowcount
    print(count, "Enregistrement mis à jour avec succès")
	
    #fermeture de la connexion à la base de données
    cur.close()
    conn.close()
    print("La connexion PostgreSQL est fermée")

except (Exception, psycopg2.Error) as error :
    print ("Erreur lors du mis à jour de la table person", error)

Sortie:

1 Enregistrement mis à jour avec succès
La connexion PostgreSQL est fermée

 
 

Exemple 2: Utiliser des variables Python comme paramètres dans une requête Update

Parfois, nous devons mettre à jour une table avec des valeurs lors de l’exécution du programme. Par exemple, lorsque les utilisateurs mettent à jour leur profil ou tout autre détail via l’interface utilisateur dans de tels cas, nous devons mettre à jour la table avec ces nouvelles valeurs.

Il est toujours recommandé d’utiliser une requête paramétrée. La requête paramétrée utilise l’opérateur (%s) À l’intérieur de l’instruction SQL qui contiennent les entrées de l’utilisateur. Il nous aide à mettre à jour les valeurs au moment de l’exécution et à éviter les problèmes d’injection SQL.

Regardons maintenant l’exemple:

import psycopg2

try:
    conn = psycopg2.connect(
					user = "postgres",
					password = "admin",
					host = "localhost",
					port = "5432",
					database = "my_db"
    )
    cur = conn.cursor()

    sql = "UPDATE person SET address = %s WHERE id = %s"
    value = ('Nantes', 1)
    cur.execute(sql, value)
    conn.commit()
    count = cur.rowcount
    print(count, "Enregistrement mis à jour avec succès")
	
    #fermeture de la connexion à la base de données
    cur.close()
    conn.close()
    print("La connexion PostgreSQL est fermée")

except (Exception, psycopg2.Error) as error :
    print ("Erreur lors du mis à jour de la table person", error)

Sortie:

1 Enregistrement mis à jour avec succès
La connexion PostgreSQL est fermée

 

Une réflexion sur “Update Table | Mise à jour de données avec Python – PostgreSQL

  • décembre 7, 2021 à 10:05 pm
    Permalien

    Superbe présentation !!!! Merci

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *