Insertion impossible [Résolu]

Signaler
-
 chaldeen -
Bonjour,

Après création de ma base de données Postgresql, j'ai souhaité insérer des données issues d'une fichier csv puis stockées dans un dataframe 'data_stations'. J'ai alors défini une fonction comme j'ai l'habitude de le faire :

def inserer_donnees(conn, sql_insertion_table, donnees):
try:
cursor = conn.cursor()
for d in donnees:
cursor.execute(sql_insertion_table, d)
conn.commit()
except psycopg2.Error as e:
print("Erreur lors de l'insertion des données")
print(e)
return
cursor.close()
print("Les données ont été insérées avec succès")


sql_inserer_stations = """
INSERT INTO Station
(id, nom, longitude, latitude, organisme)
VALUES (id, Nom, Longitude, Latitude, Organisme)
"""


inserer_donnees(conn, sql_inserer_stations, data_stations)


J'obtiens alors ce message d'erreur, que je vois pour la 1ère fois.
Erreur lors de l'insertion des données
ERREUR: la colonne « id » n'existe pas
LINE 4: VALUES (id, Nom, Longitude, Latitude, Organisme)
^
HINT: Il existe une colonne nommée « id » pour la table « station » mais elle ne peut pas être référencée dans cette partie de la requête.


Les 5 colonnes de la table correspondent pourtant bien aux 5 colonnes du dataframe. Quelqu'un aurait une idée du problème ?

Merci à vous

3 réponses

Messages postés
15637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855
bonjour,
peux-tu donner la définition détaillée du champ
id
de la table
station
?
Bonjour,

Bien sûr, elle correspond à l'identifiant d'une station de comptage de voitures, cet identifiant figure déjà dans le fichier csv, ce n'est pas un identifiant généré automatiquement lors de l'insertion des données.
Messages postés
15637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855
es-tu certain que la technique que tu utilises fonctionne?
peux-tu montrer un exemple similaire qui fonctionne bien?
Messages postés
15637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855 >
Messages postés
15637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021

peux-tu aussi partager un code complet? n'y manque-t-il pas des
import
?
J'ai finalement réussi avec la fonction COPY en exécutant directement avec un CursorExecute, mais merci beaucoup ! :)