繁体   English   中英

sqlite python如果不存在则插入并包含许多变量

[英]sqlite python INSERT IF NOT EXIST with many variables

我有一个包含很多列的表,主键是AUTOINCREMENT,从1开始。我正在逐行分析文件中的CSV数据,并且可能有重复的行。

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

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

插入或忽略的忽略部分基于冲突。 有关冲突SQLite文档中所述,您需要在表中具有唯一键或主键。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM