SQlite3中的自动增量问题

时间:2018-11-24 16:03:00

标签: python-3.x pandas sqlite

我在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。

1 个答案:

答案 0 :(得分:0)

我设法通过删除主键来使其工作。不理想。

似乎问题出在熊猫to_sql()上-它正在寻找它正在使用的索引字段,但每次执行都会重置。

问题是由默认创建索引列的最新版本的Pandas引起的。这与我的主键冲突。我只需要添加:index = False作为.to_sql

的参数