Postgresql обновление таблицы
Я обновил таблицу базы данных, используя postgresql из python. Мой код был
import psycopg2
connection=psycopg2.connect("dbname=homedb user=ria")
cursor=connection.cursor()
l_dict= {'licence_id':1}
cursor.execute("SELECT * FROM im_entry.usr_table")
rows=cursor.fetchall()
for row in rows:
i=i+1
p = findmax(row)
#print p
idn="id"
idn=idn+str(i)
cursor.execute("UPDATE im_entry.pr_table SET (selected_entry) = ('"+p+"') WHERE image_1d ='"+idn+"'")
print 'DATABASE TO PRINT'
cursor.execute("SELECT * FROM im_entry.pr_table")
rows=cursor.fetchall()
for row in rows:
print row
Я получил обновленную таблицу
Но когда я отображаю обновленную таблицу с помощью psql как homedb=# SELECT * FROM im_entry.pr_table; у меня отображается пустая таблица.. что не так?? Помогите мне, пожалуйста
1 ответ
Решение
Вы, вероятно, не совершаете транзакцию, т.е. вам нужен connection.commit()
после всех ваших обновлений.
Существуют различные настройки, которые вы можете сделать для уровня изоляции, например, autocommit, поэтому вам не нужно вводить коммиты самостоятельно. См., Например, Как мне выполнять транзакции с базой данных с помощью psycopg2/python db api?