Noimage small SQLite

ここではAndroidで利用する時のSQLiteについてメモります。

SQLDatabaseクラスのqueryメソッド

inner joinとかで繋げたVIEWを条件付きでselectしたら例外が帰ってきた。
select * from VIEW where row1 = "条件"
このrow1はVIEWにおいて明確に名前が決められていなかった(TABLE.row1としておりTABLE.row1 AS row1としてなかった)ために列名として不正だったらしい。SQLite用のツールでは普通にこれでもselectできるので、はまった。

SQLクエリで他のSQLと違うポイントなど

SQLiteではSQL文の最後は必ず「」で終わらなければならない。でないと文の終わりを認識できないらしい。SQL文単体での発行なら問題は無い。Triggerなどのストアドチックなことをしたい場合は覚えておかないとね!

SQLiteが遅い?

disk I/O error

大したレコード数をselectしてないのにdisk I/O errorが帰ってくる場合がある。件数によってはOrder Byはかなりの負荷がかかるし、Where句でもそれは同じ。そして容量オーバーを迎えたら上記エラーが返る。絶対的解決法ではないが、各条件カラムに対してCreate INDEXをつけるのが最も簡単で有効な方法。またLimit句などで呼び出す絶対量を減らしたり、SELECTするカラムを明示的にしたりと、基本的なSQLのパフォーマンス改善の方法を使う

Cursor

SQLiteを使いまわしてるとすんごく遅くなってきた。SQLite微妙じゃね?とか思ったけど、そうじゃなくって一番ネックなのはCursorの読みだし処理部分。1行読み出すたびにjavaのObjectを作りなおしては破棄してるって感じか。
http://d.hatena.ne.jp/androidzaurus/200905...

CursorAdapter

SQLiteのデータとインターフェースの表示をデータバインディングさせるAdapter。ちなみにこのAdapterを使うにはテーブルスキーマに_id列があり、なおかつ_id列が必ずSelectしていなければエラーが返ってくる。

もしかして

    他の人の「SQLite」

    Noimage small

    最新

      最新エントリ

        関連ツイート