3

ここで小さな問題に直面しています。複数の列を持つテーブルがありますが、キーが見つからない場合は挿入したり、キーが既に見つかった場合は他の値を更新したりできるように、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');

しかし、まだ新しい行を挿入しています。なぜ?どうすれば回避できますか?もっと簡単な解決策はありますか?

4

2 に答える 2

0

それはうまくいくはずですが、秘訣は、このテーブルの主キーであると想定しているIDが既存のIDと一致することを確認することです。そうしないと、重複レコードとして認識されません。

于 2013-08-19T15:44:34.960 に答える