我在这里面临一个小问题。我有一个包含多列的表,但我想要编写一个在我的 python 脚本中使用的 sqlite 查询,这样我可以在找不到键时插入,或者如果已经找到键,则更新其他值。我进行了一些研究并通过了这个答案,但我担心我的内容无法正常工作,即使它存在,也会继续添加新行。
使用这个我写了一个查询,因为我的更新/插入依赖于一个称为 id 的列,它是这个表的外键约束。我要更新的其他两列是名称和角色。所以我想要做的是在找不到 id 的情况下插入所有三个。如果找到,则查看其他两列是否具有相同的值并更新它。这是我的尝试。
INSERT OR REPLACE INTO tblExample(id, name, role)
VALUES ( COALESCE((SELECT id FROM tblExample WHERE id = 1),'1'),'name','role');
但它仍在插入新行。为什么?我怎样才能避免它?任何更简单的解决方案?