2017-07-19 4 views
0

Je rencontre des problèmes pour modifier les tables de ma base de données postgres. J'utilise psycopg2 et je travaille en Python. J'ai essayé d'ajouter une clé primaire en série. Il a fallu longtemps (grande table), et n'a pas jeté d'erreur, donc il a fait quelque chose, mais quand je suis allé vérifier, la nouvelle colonne n'était pas là. J'espère que c'est quelque chose d'idiot que j'ai raté, mais pour le moment je suis totalement perdu.Le tableau ne change pas lors de l'utilisation de psycopg

import psycopg2 
username = ***** 
password = ***** 
conn = psycopg2.connect(database='mydb',user=username,password=password) 
query = "ALTER TABLE mytable ADD COLUMN sid serial PRIMARY KEY" 
cur = conn.cursor() 
cur.execute(query) 
conn.close() 

Autres choses que j'ai essayé pendant le débogage:

  • Il ne fonctionne pas quand je retirer la clé primaire.
  • Cela ne fonctionne pas lorsque vous essayez un type de données différent.
+1

Avez-vous essayé de 'conn.commit()' avant de fermer la connexion? –

+1

Votre session n'est pas en mode autocommitation. Vous devez soit changer cela, soit valider explicitement le changement. –

Répondre

1

Vous devez ajouter une instruction de validation pour que vos modifications soient répercutées dans la table. Ajoutez ceci avant de fermer la connexion.

conn.commit()