我正在使用带有 python 的 sqlite3。我的表存储日期时间和温度。 我想在新数据进入时更新行,方法是更新具有相同日期时间的行,并在不存在具有特定日期时间的行时插入新行。
因此,例如,如果存在日期时间等于“2014 年 3 月 12 日”的行,我的代码应该更新它或创建一个新记录。但不幸的是,无论如何,下面的代码总是会创建一个新记录:
c.execute("INSERT or REPLACE INTO weather (datetime, temp) VALUES ('12 Mar 2014', 20)")
任何想法表示赞赏! 附言我知道以前有人问过类似的问题,但恐怕我无法理解如何将那里的答案应用到我自己的问题上(作为一个菜鸟当然没有帮助!)
最佳答案
要使 INSERT OR REPLACE
工作,您需要对表进行一些约束,例如
datetime TEXT UNIQUE
只有当插入会产生约束冲突时,才会首先删除冲突的行,然后插入新行。没有约束,就没有要替换的行。
关于python - 在 sqlite3 WHERE 列 = 中插入或替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22777793/