python下的sqlite使用

环境:python2.7

在处理微信朋友圈数据的过程中,需要对sqlite进行一些处理,只处理增量数据。已经处理过的,不再处理。

使用rowid

在sqlite中有64位的 ROWID,ROWID默认是自增的。我们用这个特性,来处理我们的增量数据。

记录上次ROWID

创建一个sqlite记录数据

# coding=utf-8
import sqlite3

conn0 = sqlite3.connect('local_info.db')
# 获取表名列表
tables = conn0.execute("SELECT tbl_name FROM sqlite_master WHERE type='table'")
# 如果表不存在,则创建表
if ('device_rowid_table',) not in list(tables):
    conn0.execute('''CREATE TABLE device_rowid_table
                    (
                    # 设备列表
                    device CHAR(20) NOT NULL,
                     # 此前处理过的最大rowid
                     max_rowid INT NOT NULL
                     );

    ''')

# 插入一条数据:假设,我们已经处理了3fa5684f7d53设备中的前10条数据
conn0.execute('INSERT INTO device_rowid_table (device, max_rowid) VALUES ("3fa5684f7d53", 40)')
conn0.commit()

device_id = '3fa5684f7d53'
max_rowid = 0
for device, rowid in conn0.execute('select * from device_rowid_table'):
    if device==device_id:
        max_rowid = rowid

print max_rowid

conn1 = sqlite3.connect('3fa5684f7d53_1479459121.18.db')
row_num = conn1.execute('select count(*) from SnsInfo')
print list(row_num)
conn1.execute('DELETE FROM SnsInfo WHERE ROWID<{}'.format(max_rowid))
conn1.commit()
row_num = conn1.execute('select count(*) from SnsInfo')
print list(row_num)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值