如何从笔记本连接到psql终端的psycopg2 ?



我是postgresql的新手,我刚刚有机会练习psycopg2。
这是我用于psycopg2连接到数据库某处的代码(我不知道)

conn = psycopg2.connect(host="localhost",port=5432, dbname="a1", user="god")
这是我的数据库从psql终端看起来像
List of databases
Name    | Owner | Encoding | Collate | Ctype | Access privileges 
-----------+-------+----------+---------+-------+-------------------
a1        | god   | UTF8     | C       | C     | 
postgres  | god   | UTF8     | C       | C     | 
template0 | god   | UTF8     | C       | C     | =c/god           +
|       |          |         |       | god=CTc/god
template1 | god   | UTF8     | C       | C     | =c/god           +
|       |          |         |       | god=CTc/god
x         | god   | UTF8     | C       | C     | 
如您所见,列出了数据库a1(如果a1不是从psql创建的)。, psycopg2代码会报错";db a1不存在">
然后我选择数据库a1作为当前数据库(c a1)
然后我用了"在Jupyter Notebook中执行命令将student表添加到a1
cur = conn.cursor()
cur.execute("""
CREATE TABLE Student(
SID integer PRIMARY KEY,
Name text,
)""")

psql终端显示

2021-02-08 00:08:14.597 EST [71497] STATEMENT:  
CREATE TABLE Student(
SID integer PRIMARY KEY,
Name text,
)

但是,当我按时,输入,并且dt,它告诉我没有找到任何关系

a1=# dt
Did not find any relations.

我认为我连接到a1,但似乎psycopg2没有连接到数据库a1psql因此没有添加Student表?还是我错过了什么重要的东西?
欢迎反馈意见!

正如在注释中提到的,在psycopg2

中执行查询时需要提交。您可以在连接对象之后添加以下行以将其设置为自动提交。conn.set_session(autocommit=True)

相关内容

  • 没有找到相关文章

最新更新