1

例: SMS データベースにアクセスしている場合、メッセージのタイムスタンプの「日付」フィールドがあります。ただし、タイムスタンプが古いメッセージをデータベースにロードした場合、タイムスタンプが新しいメッセージの後に追加されたことをどのように確認できますか? アクセスできるテーブル行の変更日または作成日はありますか?

編集と明確化:

SMS テーブルには次の列があります。

「日付」は、メッセージがデータベースに追加された日付ではなく、メッセージが送信された日付を指します。Android データベース (SQLite) は、データベースでデータが追加または変更されたときに追跡しますか? もしそうなら、どうすればアクセスできますか?そうでない場合、ログを記録せずにデータを追加/削除/更新するだけであれば、それも答えです。

4

2 に答える 2

3

現在の日付と時刻を含む列を作成することで、この問題を解決できます (現在は、行が挿入された時点を意味します)。

create table mytable(_id int primary key, date datetime default current_timestamp);

これにより、挿入の瞬間を指すすべての行のタイムスタンプが生成されます

別の解決策は、次のように SQLiteOpenHelper から現在のタイムスタンプを単純に挿入することです。

ContentValues values = new ContentValues(2);
values.put(COLUMN_NAME_ID, id);
values.put(COLUMN_NAME_TITLE, title);
values.put(COLUMN_NAME_CREATED_DATE, System.currentTimeMillis());

dbHelper.getWritableDatabase().insert(TABLE_NAME, null, values);
于 2014-10-06T19:33:47.183 に答える
1

行が挿入または更新されたときの sqlite の日付はありません。

于 2012-07-07T21:49:05.380 に答える