我可以发送任何问题的选择查询但是当我发送更新和插入查询时,它开始等待线程并且不再响应。我无法确定,但它似乎是一个循环。
我知道我们必须使用“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 :(得分:19)
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()
您没有正确格式化您的执行语句。
答案 1 :(得分:4)
很可能是数据库中的锁,线程/进程试图更新同一记录。
答案 2 :(得分:-4)
问题是psycopg2不支持线程。