が動作していない、私は新しいものに古いデータベースのデータを挿入し、次のコードを持っている:Psycopg2:cursor.executeだからきちんと
...
cur_old.execute("""SELECT DISTINCT module FROM all_students_users_log_course266""")
module_rows = cur_old.fetchall()
for row in module_rows:
cur_new.execute("""INSERT INTO modules(label) SELECT %s WHERE NOT EXISTS (SELECT 1 FROM modules WHERE label=%s)""", (row[0], row[0]))
...
最後の行は、ラベルが挿入されているクエリを実行し新しいデータベーステーブル私はpgAdmin
でこのクエリをテストし、私が望むように動作します。
ただし、スクリプトを実行すると、modules
テーブルには何も挿入されません。 (実際にはシーケンスは更新されますが、テーブルにはデータは保存されません)。
カーソルからexecuteメソッドを呼び出した後、何か他の操作を行う必要がありますか?
(詩。スクリプトがエラーなしで最後まで実行されている)
はい! forの後に 'conn_new.commit()'をして、テーブルを更新しました。ありがとうございました、@Evert –