然后我选择数据库a1作为当前数据库(c a1)
然后我用了"在Jupyter Notebook中执行命令将student表添加到a1
我是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)