pgdb を使用して Python スクリプトの postgres テーブルにいくつかの値を挿入しようとしています。
最初に私はこれを試しました:
cursor.execute('INSERT INTO sites (url) VALUES (%s)', (i,))
これはうまくいかなかったので、次のように変更しました
print 'INSERT INTO sites (url) VALUES (\'%s\')' %(i)
cursor.execute('INSERT INTO sites (url) VALUES (\'%s\')' %(i))
print ステートメントからの出力は次のとおりです。INSERT INTO sites (url) VALUES ('72.240.34.19:80')
上記の出力を psql に貼り付けると、機能します (つまり、行が挿入されます)。スクリプトでエラーは生成されませんが、行は挿入されません。ユーザーにはすべての権限があり、カーソルはアクティブです (選択などを実行できます)。
postgres を使用するのはこれが初めてなので、明らかな何かが欠けているのではないかと思います。見つけたすべての例を調べましたが、コードの何が問題なのかを発見できませんでした。
編集:この行をコードに追加しました:
print 'Rowcount %s' %(cursor.rowcount)
これは出力しますRowcount 1
しかしSELECT * FROM sites
空です
2番目の編集:これは奇妙です。テーブルに手動で行を挿入しました。シリアル型の自動生成 ID は 10 でした。以前は行が挿入されていなかったため、スクリプトを 3 回実行しました。行を手動で挿入すると、IDは14になりました。行が挿入され、プログラムの実行が終了すると削除されるようです。私はこれについてのアイデアを使い果たしました。