1

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になりました。行が挿入され、プログラムの実行が終了すると削除されるようです。私はこれについてのアイデアを使い果たしました。

4

0 に答える 0