【发布时间】:2016-11-27 19:51:20
【问题描述】:
我有一个包含许多列的表,主键是 AUTOINCREMENT,从 1 开始。我正在逐行解析文件中的 csv 数据,并且可以有重复的行。
在这种情况下,我需要检查表 Main 中是否已经存在对下面列出的所有变量具有相同值的行(当然使用增量主键),如果不存在,则使用这些变量创建新行。
INSERT OR IGNORE 在这种情况下不起作用,我不明白为什么。
提前致谢
cur.execute('''INSERT OR IGNORE INTO Main (sku_id, skucat_id, prodline_id, lor_id,
skucat_id, georegion_id, geosector_id, month, year,
sellin_un, sellin_rur, sellout_un, sellout_rur)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (sku_id,
skucat_id, prodline_id, lor_id, skucat_id, georegion_id,
geosector_id, month, year, sellin_un, sellin_rur,
sellout_un, sellout_rur, ))
【问题讨论】:
-
你遇到了什么错误?
-
@ettanany 没有错误,但如果我用一个文件运行脚本两次,我的行就会增加一倍。这是代码,我如何创建它 CREATE TABLE IF NOT EXISTS Main (sku_id TEXT, skucat_id TEXT, prodline_id TEXT, lor_id TEXT, georegion_id TEXT, geosector_id TEXT, month TEXT, year TEXT, sellin_un INTEGER, sellin_rur INTEGER, sellout_un INTEGER, sellout_rur INTEGER )''')
-
@ettanany 我认为主键有问题,因为我有其他表是从同一个文件创建的,但主键是从行值中获取的,而不是自动增量