#python #postgresql #psycopg2
#python #postgresql #psycopg2
Вопрос:
Я пытаюсь вызвать функцию из psycopg2
такого:
conn = psycopg2.connect(host="name.host.ex", user="username", password="secret")
cur = conn.cursor()
cur.callproc("f_do_action", ["aaa", "bbb"])
cur.close()
conn.close()
При вызове этой функции из psql
все работает нормально, но при использовании psycopg2
, похоже, ничего не происходит. Я не получаю исключений. Он просто не вызывает функцию в реальной базе данных.
Также другие запросы из psycopg2
work ( SELECT, INSERT
).
Ответ №1:
Попробуйте выполнить фиксацию перед закрытием вашего соединения:
cur.close()
conn.commit()
conn.close()
Обратите внимание, что закрытие соединения без предварительной фиксации изменений приведет к тому, что все ожидающие изменения будут отброшены, как если бы был выполнен ОТКАТ (если только не был выбран другой уровень изоляции: см. set_isolation_level()).