【发布时间】:2019-06-25 04:11:43
【问题描述】:
igers = create_engine('postgres://%s:%s@%s/ibdrs' %(igersUser, igersPwd, igersHost), encoding="utf-8")
df.to_sql('Table_Named_Something', igers, if_exists='replace', schema='Schema', index = False)
使用上面的代码我得到一个错误(psycopg2.ProgrammingError) Relation "Table_Named_Something" already exists
我认为 if_exists='replace' 应该删除并重新创建表;我错了吗?为什么这对红移不起作用?
【问题讨论】:
-
不,我没有名为 table 的表。它有另一个名字,但数据很敏感,我必须对其进行清理以确保有人发生在它上面的可能性为 0。
-
再一次,这不是表名。让我更改代码,这样你就可以摆脱困境。我已经验证了权限。
-
我没有意识到我没有复制 igers 变量部分,对此感到抱歉。 Igers 是分配给 create_engine 的变量。除此之外,你不能拥有其余的,因为它是登录和数据库地址数据
-
你确定你使用的是replace而不是append吗?仔细检查代码。类似的 Redshift/Pandas 帖子显示 append 出现问题:stackoverflow.com/q/54240688/1422451(几周前); stackoverflow.com/questions/51312684/…(几个月前)。但是 replace 没有问题(很多赞成票):stackoverflow.com/a/39709820/1422451(多年前)。
-
是的,我很确定它说的是替换。不过很高兴知道附加。
标签: python-3.x pandas