UPDATE と「INSERT OR REPLACE INTO」の違いを説明するこの投稿を見つけました。それはそれを説明します
INSERT OR REPLACE INTO names (id, name) VALUES (1, "John")
id =1 のレコードが存在しない場合は新しい行を挿入し、存在する場合は id = 1 の行を置き換えます。私の質問は、「id」がレコードが既に存在するかどうかを決定する値を持つフィールドであることをどのように認識または決定するのですか?
言い換えれば、sqlite が name = "John" のレコードを検索して id 値を置き換えないのはなぜでしょうか? これは、上記の例で説明されていないインデックスに依存するのでしょうか?それとも、SQLite は「id」という名前のフィールドまたはフィールド名の行の最初に名前が付けられたフィールドを特別に扱うのでしょうか?