我有以下代码
pg_con = conns.con_to_pg()
cur = pg_con.cursor()
with open('up_md.csv', 'r') as f:
next(f) # Skip the header row.
tbl = 'bidba.upmeta'
cur.copy_from(f, tbl, 'csv', sep=',')
pg_con.commit()
架构和表
bidba.upmeta
存在于我的postgres数据库中。
无论我做什么,我都会收到消息:relation "bidba.upmeta" does not exist
错误。
我尝试过用单引号、双引号、不带引号来写。 没有任何帮助。我缺少什么?
copy_from
方法有问题吗?
这是一个已知问题,将在下一版本的 PyGreSQL 中修复。
作为解决方法,您可以通过
tbl = 'upmeta'
。如果您的 bidba
模式位于搜索路径中,这应该有效。否则,您可以在调用 SET search_path TO bidba, public
之前使用 copy_from
将其放入当前会话的搜索路径中。
您也可以这样修复:
1- set_schema =“设置模式‘bidba’” cur.execute(set_schema)
2- cur.copy_from(f, 'upmeta', 'csv', sep=',')