Python 在sqlite3的WHERE列中插入或替换=

Python 在sqlite3的WHERE列中插入或替换=,python,sql,datetime,sqlite,Python,Sql,Datetime,Sqlite,我将sqlite3与python一起使用。我的桌子存储日期、时间和温度。 我希望在收到新数据时更新行,方法是更新具有相同日期时间的行,并在不存在具有特定日期时间的行时插入新行 因此,例如,如果存在datetime等于“2014年3月12日”的行,我的代码应该更新它或创建新记录。但不幸的是,以下代码始终会创建一个新记录: c.execute("INSERT or REPLACE INTO weather (datetime, temp) VALUES ('12 Mar 2014', 20)")

我将sqlite3与python一起使用。我的桌子存储日期、时间和温度。 我希望在收到新数据时更新行,方法是更新具有相同日期时间的行,并在不存在具有特定日期时间的行时插入新行

因此,例如,如果存在datetime等于“2014年3月12日”的行,我的代码应该更新它或创建新记录。但不幸的是,以下代码始终会创建一个新记录:

c.execute("INSERT or REPLACE INTO weather (datetime, temp) VALUES ('12 Mar 2014', 20)")
任何想法都值得赞赏!
另外,我知道以前也有人问过类似的问题,但我恐怕无法理解如何将那里的答案应用到我自己的问题上(作为一名新手当然没有帮助!)

要使

插入或替换
有效,例如,你需要对表格进行一些约束

datetime TEXT UNIQUE

只有当插入会产生约束冲突时,才会首先删除冲突行,然后插入新行。如果没有约束,就没有要替换的行。

替换语句将只对主键或唯一约束起作用,您可以看到


因此,请将datetime设置为唯一或主键(最好是唯一的),以便您的replace语句能够正常工作。

非常感谢!谢谢你花时间在这上面!