我在Sqlite3中有一个表:
CREATE TABLE `shows` (
`index` INTEGER PRIMARY KEY AUTOINCREMENT,
`show` TEXT,
`createddate` TEXT,
`Batch` INTEGER
);
我正在使用以下代码将数据加载到表中:
df = pd.DataFrame(np.column_stack([shows,dates, batch]),columns=['show', 'createddate','batch'])
df.to_sql('shows', conn,if_exists='append')
我第一次在表为空的情况下运行它时效果很好。
但是,如果我再次运行它,则会收到错误消息:
UNIQUE constraint failed: shows.index
有什么想法可以使索引在第二次加载时自动递增?
编辑:显示,日期,批处理只是文本数据列表。您会注意到我没有传递索引,因为我认为不需要在主键上使用AUTOINCREMENT。
答案 0 :(得分:0)
我设法通过删除主键来使其工作。不理想。
似乎问题出在熊猫to_sql()上-它正在寻找它正在使用的索引字段,但每次执行都会重置。
问题是由默认创建索引列的最新版本的Pandas引起的。这与我的主键冲突。我只需要添加:index = False作为.to_sql
的参数