Postgresql Postgres psycopg2:关闭连接后未保存关系/表

Postgresql Postgres psycopg2:关闭连接后未保存关系/表,postgresql,psycopg2,Postgresql,Psycopg2,我正在尝试创建一个表,在postgresql中记录我的应用程序。下面的工作很好 conn = psycopg2.connect(database="db1", user = "postgres", password = "", host = "myhost", port = "5432") cur = conn.cursor() cur.execute('''CREATE TABLE login (USERNAME VARCHAR(20) NOT NULL, TS TIM

我正在尝试创建一个表,在postgresql中记录我的应用程序。下面的工作很好

conn = psycopg2.connect(database="db1", user = "postgres", password = "", host = "myhost", port = "5432")
cur = conn.cursor()
cur.execute('''CREATE TABLE login
      (USERNAME VARCHAR(20) NOT NULL,
      TS TIMESTAMP);''')
cur.execute("""INSERT INTO public.login (USERNAME,TS) \
      VALUES ('TEST','2019-12-03')""");
my_table    = pd.read_sql('SELECT * FROM public.login', conn)
conn.close()
我以为已经创建并保存了表/关系。但当我重新连接时,我得到一个错误,即
不可定义:关系“public.login”不存在

conn = psycopg2.connect(database="db1", user = "postgres", password = "", host = "myhost", port = "5432")
print ("Opened database successfully")
cur = conn.cursor()
cur.execute("""INSERT INTO public.login (USERNAME,TS) \
      VALUES ('TEST','2019-12-03')""");
my_table    = pd.read_sql('SELECT * FROM public.login', conn)
如中所述,下表不在


我不明白为什么关闭连接会导致这种情况。

您必须调用
conn.commit()

conn.close()之前尝试
conn.commit()
cur.execute("""SELECT table_name FROM information_schema.tables
       WHERE table_schema = 'public'""")
for table in cur.fetchall():
    print(table)