python
  • psycopg2
  • 2011-09-18 9 views 7 likes 
    7

    私は問題のある選択クエリを送信できますが、更新クエリと挿入クエリを送信するとスレッドを待機し始め、それ以上応答しません。私は確信することはできませんでしたが、それはループのように思えます。psycopg2(挿入、更新)書き込みの問題

    変更を適用するには "commit()"を使用する必要がありますが、機能しません。

    import psycopg2 
    conn = psycopg2.connect("dbname='test' user='postgres' host='localhost' password='xx"); 
    cursor = conn.cursor() 
    cursor.execute("UPDATE recording SET rank = 10 WHERE id = 10;") 
    conn.commit() 
    cursor.close() 
    
    +0

    私はこの同じ問題が私の挿入クエリを持っています。 –

    答えて

    -4

    問題はpsycopg2がスレッドをサポートしていないことです。

    4

    最も可能性の高い糸で、データベース内のロックは、/プロセスが同じレコードを更新しようとしている:

    は、ここに私のコードです。

    +0

    私は行を更新するためにPythonでスレッドを使用します(各クエリは異なる行を更新します)。ロックしないでレコードを更新する方法はありますか? –

    +0

    それはあなたがしなければならないことにかかっています。自動コミット・トランザクションを使用すると、トランザクションが短くなり、ロックされたプロセスはすぐに再び動作しますが、実際は必要な効果に依存します。 – piro

    14
    import psycopg2 
    conn = psycopg2.connect(database="dbasename",user="username",password='your_password',host='web_address',port='your_port') 
    cursor = conn.cursor() 
    cursor.execute("UPDATE table_name SET update_column_name=(%s) WHERE ref_column_id_value = (%s)", ("column_name","value_you_want_to_update",)); 
    conn.commit() 
    cursor.close() 
    

    実行文を正しくフォーマットしませんでした。

    +0

    変数 "cur"がどこから来ているのか分かりません – CheeHow

    関連する問題