我这里遇到了一个小问题。我有一个表格,其中有多个列,但我的目标是编写一条SQLite查询语句,以便在我的Python脚本中使用。如果找不到键,则可以插入;否则,更新其他值。我进行了一些研究并发现了这个 答案,但我的问题是它无法正常工作,即使数据已存在,它仍会继续添加新行。
基于此答案,我编写了一个查询,因为我的更新/插入取决于一个名为id的列,它是与该表相关的外键约束。 我想要更新的其他两个列的名称和角色。因此,如果不存在id,则要插入所有三个,如果已存在,则要查看其他两个列是否具有相同的值,并对其进行更新。以下是我的尝试:
基于此答案,我编写了一个查询,因为我的更新/插入取决于一个名为id的列,它是与该表相关的外键约束。 我想要更新的其他两个列的名称和角色。因此,如果不存在id,则要插入所有三个,如果已存在,则要查看其他两个列是否具有相同的值,并对其进行更新。以下是我的尝试:
INSERT OR REPLACE INTO tblExample(id, name, role)
VALUES (COALESCE((SELECT id FROM tblExample WHERE id = 1),'1'),'name','role');
但它仍然在插入新行。为什么?如何避免这种情况?是否有更简单的解决方案?