SQLite3でレコードが存在するか確認する

こんにちは!

今回はSQLite3でレコードが存在するか確認する方法についてまとめます。

何をしたいか

  • テーブルにレコードが存在する時はINSERTせず、レコードが存在しない時だけINSERTしたい

コード例

   result = @db.get_first_value("
      SELECT count(*)
      FROM text
      WHERE text = 'something'
    ")
  • textテーブルからtext列にsomethingが存在するかどうか結果を返す
  • 存在しなければ0, 存在したら1以上の値が返る

注意点

  • get_first_valueのところをexecuteで実行すると、SQLite3のResultクラスが返り、値の比較がそのままでは実行できない

おわりに

実際にDBから情報取得したり追加するプログラムを書くと、こういった細かいところでひっかかったりしますね。細かい部分についても、また何かあればまとめようと思います。

18/100