import psycopg2
from config import host, user, password
try:
con = psycopg2.connect(
host = host,
user = user,
password = password,
database = "postgres",
)
cur = con.cursor()
print(con.autocommit)
cur.execute("DROP TABLE IF EXISTS users")
cur.execute("""CREATE TABLE IF NOT EXISTS users (
id INTEGER )""")
cur.execute("INSERT INTO users VALUES (0); INSERT INTO users VALUES (1)")
cur.execute("INSERT INTO users VALUES (2)")
except BaseException as error:
print(error.__class__, error)
finally:
if not cur.closed:
cur.close()
con.close()
print("Соединение с PostgreSQL закрыто")
Ничего не понял, честно говоря. Если ты думаешь, что у меня включен автокоммит, то это не так. Вот этот код
cur.execute("DROP TABLE IF EXISTS users")
cur.execute("""CREATE TABLE IF NOT EXISTS users (
id INTEGER )""")
cur.execute("INSERT INTO users VALUES (0); INSERT INTO users VALUES (1)")
cur.execute("INSERT INTO users VALUES (2)")
не сохраняет в базе данных никаких изменений. И показывает, что autocommit == False.
o5a, если более понятно переформулировать, то вопрос был такой: каким образом динамически в программе питона можно вывести последнее (на данный момент в рантайме) сохраненное состояние базы данных?
То есть, fetchall в принципе может отображать данные, которых на самом деле в базе нет? А зачем так сделано? Это же только путает и может приводить к ошибкам