ここで小さな問題に直面しています。複数の列を持つテーブルがありますが、キーが見つからない場合は挿入したり、キーが既に見つかった場合は他の値を更新したりできるように、Python スクリプトで使用する sqlite クエリを作成したいと考えています。少し調べて、この回答にたどり着きましたが、コンテンツが機能していないという懸念があり、存在する場合でも新しい行を追加し続けます。
私の更新/挿入は、このテーブルへの外部キー制約である id と呼ばれる列に依存しているため、これを使用してクエリを作成しました。更新したい他の2つの列は、名前と役割です。IDが見つからない場合は、3つすべてを挿入します。見つかった場合は、他の 2 つの列で同じ値を取得しているかどうかを確認し、更新します。これが私の試みです。
INSERT OR REPLACE INTO tblExample(id, name, role)
VALUES ( COALESCE((SELECT id FROM tblExample WHERE id = 1),'1'),'name','role');
しかし、まだ新しい行を挿入しています。なぜ?どうすれば回避できますか?もっと簡単な解決策はありますか?