DELETE | Supprimer des données en PostgreSQL avec Python

Dans ce tutoriel nous allons découvrir comment supprimer 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 supprimer 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 supprimer des données avec Python

Pour l’instant, la table ‘person’ contient cinq lignes. Supprimons donc la personne dont l’ID est 4. Pour effectuer une requête DELETE à 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 DELETE. Ici, vous devez connaître la table et le nom de la colonne que vous souhaitez supprimer.
  • Exécutez la requête DELETE à l’aide de curseur.execute()
  • Après l’exécution réussie de la requête DELETE, n’oubliez pas de valider la suppression 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: Supprimer un seul enregistrement dans la table ‘person’
import psycopg2

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

    sql = "DELETE FROM person WHERE id = 4"
    cur.execute(sql)
    conn.commit()
    count = cur.rowcount
    print(count, "Enregistrement supprimé 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 suppression dans la table person", error)

Sortie:

1 Enregistrement supprimé avec succès
La connexion PostgreSQL est fermée

 
 

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

Parfois, nous devons supprimer une ligne d’une table PostgreSQL dans laquelle la clé primaire de la ligne est passée au moment de l’exécution. Par exemple, lorsqu’un utilisateur supprimer son profile via une interface utilisateur dans de tels cas, nous devons supprimer son entrée dans la table.

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 à supprimer ses 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 = "DELETE FROM person WHERE id = %s"
    id = 4
    cur.execute(sql, (id, ))
    conn.commit()
    count = cur.rowcount
    print(count, "Enregistrement supprimé 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 suppression dans la table person", error)

Sortie:

1 Enregistrement supprimé avec succès
La connexion PostgreSQL est fermée

 
 

Exemple 3: Supprimer plusieurs enregistrements dans la table ‘person’

Dans l’exemple ci-dessus, nous avons utilisé la méthode execute() de l’objet curseur pour supprimer un seul enregistrement, mais parfois dans une application Python, nous devons supprimer plusieurs lignes dans la table dans une seule requête DELETE.

Nous pouvons supprimer plusieurs enregistrements dans la table PostgreSQL en utilisant la fonction executemany() de l’objet curseur.

La méthode cursor.executemany() accepte deux arguments: la requête SQL et la liste d’enregistrements.

Regardons maintenant le programme.

import psycopg2

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

    sql = "DELETE FROM person WHERE id = %s"
    ids = [(2,),(3,),(4,)]
    cur.executemany(sql, ids)
    conn.commit()
    count = cur.rowcount
    print(count, "Enregistrement supprimé 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 suppression dans la table person", error)

Sortie:

1 Enregistrement supprimé avec succès
La connexion PostgreSQL est fermée

 

Laisser un commentaire

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