如何在SQLite表中删除动态行

时间:2017-02-10 12:53:27

标签: python database sqlite sql-delete rowdeleting

我编写了一个python函数,用于使用Sensor的测量结果更新两个SQLite.db文件表。我每隔15分钟在Raspberry Pi上存储数据。

由于SD卡的硬盘空间有限(16GB),我需要删除动态数据。很明显,我需要一种在第一天(4行/小时),第一周(1周/小时),第一个月(1个月/ 2个小时)和过去一个月(1个月/ 4个小时)之后删除数据的算法。最后,应删除所有早于一年的数据。

以下是更新数据的功能:

def database(save_to_db):        #save_to_db is a list with humidity[0] OR temperature[0] and integers of year[1], month[2], day[3], time[4]
conn = sqlite3.connect('database.db')                    #connect to database "database.db"
cur  = conn.cursor()                                     #create a cursor
#______Which measure is determined? ('%' = humidity, 'C' = temperature)_____
if '%' in save_to_db[0]:
#______Insert a row with index, humidity, date, time
    cur.execute(('''INSERT INTO hum VALUES (
                 NULL, ?,?,?,?,?)''')
                (save_to_db[0], save_to_db[1], save_to_db[2], save_to_db[3], save_to_db[4]))
elif 'C' in save_to_db[0]:
#______Insert a row with index, temperature, date, time
    cur.execute(('''INSERT INTO tem VALUES (
                 NULL, ?,?,?,?,?)'''),
                (save_to_db[0], save_to_db[1], save_to_db[2], save_to_db[3], save_to_db[4]))   
conn.commit()                                           #save the determined rows                                     
conn.close()                                            #close connection to DB

现在我想查询新的一天是否已经开始。如果是这样,则应调用新函数来删除数据。它不是真正的动态,但我认为应该足以每天删除一次数据。我不知道我怎么做到这一点。

我是python和SQLite的新手。

0 个答案:

没有答案