Postgresql обновление таблицы - PullRequest
3 голосов
/ 17 марта 2011

Я обновил таблицу базы данных, используя 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 Ответ

7 голосов
/ 17 марта 2011

Вы, вероятно, не совершаете транзакцию, т. Е. Вам нужно connection.commit() после всех ваших обновлений.

Существуют различные настройки для уровня изоляции, например, autocommit, поэтому вам не нужно выдавать коммиты самостоятельно. См., Например, Как мне выполнять транзакции базы данных с psycopg2 / python db api?

...