我在这里面临一个小问题。我有一个多列的表,但我想要写的sqlite查询将用于我的python脚本,以便我可以插入如果找不到密钥或者如果已找到密钥更新其他值。我研究了一下,并通过了这个answer,但我的内容关注我的内容,它不工作,并继续添加新的行,即使它存在。插入或更新sqlite3
使用this我写了一个查询,因为我的更新/插入依赖于称为id的列,这是该表的外键约束。其他两列,我想更新说的名称和角色。所以我想要做的是插入所有三个,如果没有找到id。如果找到,则查看它是否具有相同的值或不是其他两列并更新它。这是我的尝试。
INSERT OR REPLACE INTO tblExample(id, name, role) VALUES (COALESCE((SELECT id FROM tblExample WHERE id = 1),'1'),'name','role');
但它仍然是插入新行。为什么?我怎么能避免它?更简单的解决方案?
不是,它是表的外键主键是一个单独的列 – user9517536248