我发现这篇文章解释了 UPDATE 和“INSERT OR REPLACE INTO”之间的区别。它解释说
INSERT OR REPLACE INTO names (id, name) VALUES (1, "John")
如果不存在 id = 1 的记录,则插入新行,如果存在,则替换 id = 1 的行。我的问题是:SQLite 如何知道或决定“id”是其值确定记录是否已经存在的字段?
换句话说,为什么 sqlite 不搜索 name = "John" 的记录并替换 id 值?这是否取决于上面示例中未提及的索引,或者 SQLite 是否对名为“id”的字段或字段名称行中的第一个字段进行特殊处理?