sqlite,如果存在更新,否则插入python

时间:2018-12-08 00:00:20

标签: python python-3.x sqlite

如果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']))

该脚本可以正常运行。但是我也没有得到想要的结果。它不会令人遗憾地返回任何内容。我不确定自己在这里做错了什么,为什么我不能UPDATEINSERT

谢谢。

0 个答案:

没有答案