Android SQLiteでレコードの削除 と論理削除について
AndroidでSQLiteを使ったレコードの削除で、DELETE文を書いてもできなかったのでメモ
どうやらmoveToFirstを書かないと消えないようだ。何故かはわからない。
ちなみに sqlite delete androidで検索した
↓実際に書いたソース
Cursor cur = db.rawQuery("delete from ASSIGN " + "where id = ?", new String[]{String.valueOf(assignId)}); cur.moveToFirst();
あと、エンジニアの方に教えてもらったのが、論理削除と物理削除について
物理削除は、物理的に消してしまうこと。今回のDELETE文と同じ。
論理削除は、レコード自体を消すのではなくて、
フラグを作り、そのフラグによってレコードが削除されてる体にすること。
この場合はUPDATE文で削除フラグを1にすればいいのだと思う。
こうすることで、後でデータが必要になった時にはフラグを0に戻せば元通りにできる。
こういう考え方は現場入っているからこそ知れるのだろうなぁと関心した。