psycopg2 (вставить, обновить) проблема с написанием - PullRequest
8 голосов
/ 18 сентября 2011

Я могу отправить запросы на выборку с любой проблемой, но когда я отправляю обновление и вставляю запросы, он начинает ждать поток и больше не отвечает. Я не был уверен, но это похоже на петлю.

Я знаю, что мы должны использовать "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 ()

Ответы [ 3 ]

19 голосов
/ 28 августа 2014
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()

Вы неправильно отформатировали оператор execute.

4 голосов
/ 22 сентября 2011

Скорее всего, это блокировка базы данных, когда поток / процессы пытаются обновить одну и ту же запись.

0 голосов
/ 06 августа 2012

Проблема в том, что psycopg2 не поддерживает потоков.

...