我觉得这是一个非常简单的问题,但是我使用sqlite3尝试解决了许多小时。
我需要做的就是检索输入到表中的最后一行数据,并用一个值更新它。
我尝试过c.execute("select max(timestamp) from sensor_data")
,它只会返回最近的时间戳。
下面的代码是我的表名和列。
sensor_data(ph, air_temp, water_temp, humidity, water_level, timestamp)
答案 0 :(得分:2)
您需要SELECT
拥有最大timestamp
的行,您可以使用此查询进行操作:
SELECT *
FROM sensor_data
WHERE timestamp = (SELECT MAX(timestamp) FROM sensor_data)
或更简单地
SELECT *
FROM sensor_data
ORDER BY timestamp DESC
LIMIT 1
要更新此行,请使用类似
UPDATE sensor_data
SET air_temp = 20
WHERE timestamp = (SELECT MAX(timestamp) FROM sensor_data)
答案 1 :(得分:0)
您可以使用:参考文档 https://www.sqlite.org/lang_corefunc.html#last_insert_rowid
SELECT last_insert_rowid()