0

だから私はPostgreSQL 9.2に挿入してpsycopg2おり、Python 2.7を使用しています。私はtry: except:この挿入物を使用していますが、エラーは発生せず、すべてがうまくいっているように実行されます。データベースへの接続と同じです。

私が考えていない、これを使用するときに誰もが遭遇する一般的なエラーはありますか?

問題は、insert実際には挿入されないことです。エラーは発生しませんが、何もインポートしません

cur.execute("""
INSERT INTO data ( date, time, name, qty, dayornight, bl, idc, prices, contractlength)
VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s);""",
    (datet, timet, "lod", qty, "day", btores, 0, prices, contracts))

みんなありがとう!私が言ったように、文字通りエラーはなく、すべてがうまくいきます。psycopg2を確認しましたが、FAQ には何もありません。

4

1 に答える 1

0

デフォルトでは、psycopg2接続のautocommit属性値は、 psycopg2FalseのDBAPI 仕様に従って (手動コミット)であるため、「最初のコマンド実行時に新しいトランザクションが開始されます。トランザクションを終了するには、メソッドまたは手動で呼び出す必要があります」 . commit() rollback()

したがって、insertコミットするためには、その後に必要になります (それがカーソルであると仮定するcurと、カーソルの接続で commit を呼び出すだけで済みます)。

cur.connection.commit()

または、connectionsautocommit属性の値をTrueドライバーによって処理されるトランザクションはなく、バックエンドに送信されたすべてのステートメントがただちに有効になります」に設定することもできます。

于 2012-10-06T09:44:53.830 に答える