Понимание поля автоматического увеличения sqlite для Android - PullRequest
7 голосов
/ 13 июля 2011

У меня есть таблица в моей базе данных android sqlite. Есть поле 'id', которое является автоинкрементным первичным ключом. Мой сервис приложений вставляет строку в каждую минуту в таблице. В какой-то момент времени я удаляю запись старше 5 дней. Таким образом, общее количество записей ограничено. Но идентификатор увеличивается. Так что я путаюсь со значением идентификатора, так как оно увеличивается с каждой новой записью. Каково будет условие, когда поле 'id' превысит максимальное значение ?. Каково максимальное значение этого поля? Как работать с этим при данных обстоятельствах? Могу ли я действительно работать с полем автоинкремента здесь?

Таблица создания оператора:

create table datausage (id integer primary key autoincrement,"
            + "date date not null,time text not null,level integer)

Ответы [ 3 ]

23 голосов
/ 13 июля 2011

См. это для официальных документов.Самый большой возможный ROWID - 9223372036854775807, который, если вы пишете 1000 записей в секунду, будет длиться более 10675199116 дней: я не думаю, что у вас возникнут трудности с этим.

Когда это будет достигнуто, база данных запуститсявыбирая неиспользуемые идентификаторы, так что у вас тоже все будет хорошо.

Используйте AUTO INCREMENT: это лучший вариант, доступный для вас.

EDIT: также, по какой-то причине он называется AUTO INCREMENT.Предполагается, что автоматически увеличивается.

4 голосов
/ 13 июля 2011

Автоинкрементный первичный ключ будет продолжать увеличиваться вечно (в наших условиях) и не будет заменять удаленные записи. Даже если вы удалите старые записи, поле id будет увеличиваться непрерывно.

Как указывалось в других ответах, места для поля более чем достаточно.

0 голосов
/ 13 июля 2011

Вам не нужно использовать автоинкремент, если вы хотите поместить свои собственные значения в соответствии с вашей логикой, он будет увеличивать значение каждый раз, когда вы вставляете строку. Вместо этого вы можете удалить таблицу и воссоздать таблицу, если хотите использовать автоинкремент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...