如果Count=Count+1
已经存在,我尝试更新src_ip
,否则插入表中。
我能够成功使用UPSERT来做到这一点:
INSERT INTO result('min(_time)', src_ip) VALUES(?,?)ON CONFLICT(src_ip) DO UPDATE SET Count=Count+1;
我正在寻找另一种不使用UPSERT的方法。我尝试了this:
# Import csv to SQLite
with open('result5.csv', 'r') as f:
dr = csv.DictReader(f)
for i in dr:
c.execute("UPDATE result SET Count = Count + 1 WHERE src_ip = ?", (i['src_ip'],))
if c.rowcount == 0:
c.execute("INSERT INTO result ('min(_time)', src_ip, Count) VALUES (?,?,1)",
(i['min(_time)'], i['src_ip']))
该脚本可以正常运行。但是我也没有得到想要的结果。它不会令人遗憾地返回任何内容。我不确定自己在这里做错了什么,为什么我不能UPDATE
或INSERT
?
谢谢。