1

新しい行が作成されたときにIDが最小のエントリを自動的に削除するようにデータベースに指示するにはどうすればよいですか?テーブルに10行を超える場合に、これを実行したいと思います。

これが私のcreateEntryメソッドです:

public long createEntry(String latitude, String longitude) {
    // TODO Auto-generated method stub
    ContentValues cv = new ContentValues();

    cv.put(KEY_LATITUDE, latitude);     
    cv.put(KEY_LONGITUDE, longitude);



    return myDatabase.insert(DATABASE_TABLE, null, cv);
}
4

1 に答える 1

2

最小の ID を持つ「最も古い」行を削除する場合は、SQL テーブルの行のローリングからこの回答を使用します。

ただし、SQLite テーブルには行 ID の最大数があります。この制限に達すると、 を使用integer primary key autoincrementするテーブルは、新しい挿入のために古い未使用の行 ID を検索します。これにより、最新の行が最小の行 ID を持つ (そして最初に削除される) 可能性があります。

通常、この制限は 9223372036854775807 であることを理解してください。スマートフォン アプリでこの数の挿入を超えると予想される場合は、次のようにします。

  1. あなたは気が狂っている。
  2. 代わりに、トリガーでタイムスタンプを使用できます。
于 2012-07-15T23:02:28.113 に答える