• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FMDBについて)

FMDBでinsert時に同じ値のフィールドが存在する場合のエラー

このQ&Aのポイント
  • FMDBを使用してobjective-cでinsert時に既存の同じ値のフィールドを無視する方法について質問です。
  • insert ignore文を使用して同じ値のフィールドを無視する方法を試みましたが、エラーが発生しました。
  • FMDBで同じ値のフィールドを無視するためにはどのような記述が必要なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.1

FMDB ということは使用しているデータベースは SQLite3 ですね。この場合は INSERT ~ SELECT ~ WHERE NOT EXISTS で存在チェックしながら挿入します。 以下に SQL例を提示します。(FMDB ライブラリ表記への変換は質問者さんのほうで工夫してください) INSERT INTO search (date, site, title, url) SELECT データ1, データ2, データ3, データ4 WHERE NOT EXISTS ( SELECT 1 FROM search WHERE date=データ1 AND site=データ2 AND title=データ3 AND url=データ4) ※NOT EXISTS 内の WHERE 句は、search テーブルにPKが張られているのであれば PK の項目のみに省略できます。 なお、insert ignore は MySQL の『方言』ですので、他の DBMS で使用することはできません。

nylonraw999
質問者

お礼

迅速な回答ありがとうございます。 非常に助かりました。

関連するQ&A