質問: sqliteで特定のレコードの主キーやユニーク以外の値が複数一致した場合にレコードの更新を行い、一致するデータがない場合は追加を行いたいのですが方法がわかりません。 例 id(主キー) | day | event | content | ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 1 | 4/15| 公園 | 散歩 | 2 | 4/16| 公園 | 昼寝 | 3 | 4/17| 公園 | 昼飯 | 4 | 4/16| 海 | 昼寝 | day 4/16 event 公園 content ジョギング ←id 2 に更新 day 4/17 event 海 content ジョギング ←新規追加 dayとeventが一致すればcontentの更新、一致しなければ新しいレコードの追加としたいのですが方法がわかりません。 例が少しわかりにくいかもしれませんが分かる方教えていただけますか
回答: このように、「とりあえずUPDATEから投げてみて、1行も更新されなければINSERT」という手段があります。 なお、dayとeventを組み合わせたものが一意だというなら、**複数列のUNIQUE制約**をかけておくことを、強くおすすめします(SQLiteでも実行できます)。