sqlite python INSERT如果不存在很多变量

2024-06-01 09:02:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有很多列的表,主键是AUTOINCREMENT,从1开始。我正在逐行分析来自文件的csv数据,可能有重复的行。在

在这种情况下,我需要检查Main表中是否已经存在对下面列出的所有变量都具有相同值的行(当然还有增量主键),如果不存在,则使用这些变量创建新行。在

插入或忽略在这种情况下不起作用,我不明白为什么。在

提前谢谢

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, ))

Tags: idmain情况un主键lormonthsku
1条回答
网友
1楼 · 发布于 2024-06-01 09:02:04

insert或ignore的忽略部分基于冲突。正如SQLite documentation for on conflicts中所讨论的,您的表中需要有一个唯一的或主键。在

您的表中是否有一列或一组列是唯一的或可以用作主键的列,例如sku_uid?这将导致冲突,因此每当遇到该约束时,insert都将被忽略。现在您只是在表上没有约束地插入数据,所以每次执行插入操作时都不会检查任何内容。在

相关问题 更多 >