Insertion impossible
Résolu
chaldeen
-
chaldeen -
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 :
J'obtiens alors ce message d'erreur, que je vois pour la 1ère fois.
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
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
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
peux-tu donner la définition détaillée du champid
de la tablestation
? -
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. -
J'ai finalement réussi avec la fonction COPY en exécutant directement avec un CursorExecute, mais merci beaucoup ! :)