【发布时间】:2017-11-19 16:26:01
【问题描述】:
我正在尝试在 python 中使用 to_sql 命令附加到 SQL 表。一切正常,但如果我运行我的命令 more tahn,它显然会附加相同的数据。我知道这可以通过 if_exists='replace' 解决,但是当我这样做时,我得到以下错误。
ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server] 表 'table' 中的列 'AccountName' 属于无法使用的类型作为索引中的键列。(1919) (SQLExecDirectW)") [SQL: u'CREATE INDEX [ix_table_AccountName] ON table ([AccountName])']
我需要弄清楚如何,仅附加表中尚未包含的数据,删除我将要附加的数据(如果它已在表中)或如何解决我的索引问题,以便我可以使用 if_exists ='替换'
engine = create_engine('mssql+pyodbc://UN:PW@DB')
df.to_sql("table", engine,if_exists='replace')
【问题讨论】:
-
为了解决您的索引问题,您尝试
index=False了吗? -
您能否发布一些您正在使用的数据并举例说明什么是“已经在表格中”?我不确定这是否包括单个值或整行。
标签: python mysql sql-server pandas pandas-to-sql