2011-09-18 37 views
7

Sorguları herhangi bir sorunla birlikte gönderebilirim, ancak güncelleme gönderdiğinizde ve sorgu eklediğimde, iş parçacığı beklemeye ve artık yanıt alamamaya başlıyor. Emin olamadım ama bir döngü gibi görünüyor.psycopg2 (ekleme, güncelleştirme) yazma sorunu

Değişiklikleri uygulamak için "commit()" i kullanmamız gerektiğini biliyoruz, ancak çalışmıyor.

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

Aynı sorunu eklediğim ekleme sorgularım var. –

cevap

-4

Sorun psycopg2'nin iş parçacığı desteği yok.

4

Büyük ihtimalle iplikle veritabanında bir kilit,/işlemleri aynı kaydı güncelleştirmek için çalışıyor:

İşte benim kodudur.

+0

Satırları güncellemek için Python'da iş parçacığı kullanırım (her sorgu farklı satırı güncelleştirir). Kayıtları kilitlemeden güncellemenin bir yolu var mı? –

+0

Yapmanız gerekenlere bağlı. Bir autocommit işlemi kullanmak kısa işlemlerin yapılmasını sağlar ve kilitli işlemin kısa süre sonra tekrar çalışmasını sağlar, ancak bu gerçekten istenen etkiye bağlıdır. – 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() 

Yürütme ifadenizi doğru şekilde biçimlendirmediniz.

+0

"Cur" değişkeninin nereden geldiğini görmüyorum ... ne ayıp – CheeHow

İlgili konular