У меня есть функция Postgresql, как показано ниже:Как выполнить Postgresql функции из Python
CREATE OR REPLACE FUNCTION accdisvalues(thisdate date)
RETURNS void AS
$BODY$
Update my_table
Set
mycolumn = true
where mydatecol = thisdate;
$BODY$
LANGUAGE sql VOLATILE SECURITY DEFINER
COST 100;
ALTER FUNCTION accdisvalues(date)
OWNER TO myconnect;
Всякий раз, когда я запускаю его с PG AdminIII он работает отлично и значения обновляются в таблице.
Я пытаюсь запустить его из Python 3 с приведенным ниже кодом, и код запускается без ошибки, но обновление не выполняется в таблице. Может ли кто-нибудь помочь мне решить, что может быть проблемой? Большое спасибо.
import easygui
import dbconnex
setdate = '30-Dec-2014'
accdisupdate_fn = "Select accdisvalues('" + setdate + "');"
print(accdisupdate_fn)
cursor = dbconnex.conn.cursor()
cursor.execute(accdisupdate_fn)
easygui.msgbox(msg='Data loaded successfully for ' + setdate ,title="Input Status")
Есть ли запись в файл журнала PG почему обновление не произошло? – Patrick
Просто сделайте это. –
Выключается после выполнения инструкции курсора, вам нужно запустить conn.commit() для завершения. Большое спасибо за вашу помощь. – Avagut