假设我在Sqlite3数据库中有一些数据,该数据是通过从Python的executemany()
模块执行sqlite3
插入的。
示例initial_data
:
initial_data = [
('aa','test1','home1'),('aa','test2','home2'),'test3','home3'),'test4','home4'),'test5','home5'),]
示例executemany()
:
self.db.executemany("""
INSERT INTO some_table (
col1,col2,col3
)
VALUES (?,?,?)
""",data)
将上面的initial_data
插入表后,我可能会有一组新的data
,如下所示:
data = [
('aa','test6','home6'),// this is new
('aa',]
您可能已经注意到,data
中有一个新行,这是应该插入到我的表中的唯一行。
现在,我知道我可以做类似set(data) - set(initial_data)
(如果是len(data) > len(initial_data)
的操作,并将其插入到表中,但是我想知道是否可以以某种方式更改查询,以便可以直接从SQL执行此操作。有人对此有任何想法吗?
PS:如果重要的话,Dunno,但是len(data)
始终为30k-50k。