У меня есть приложение для iPhone, и один из моих пользователей обнаружил странную проблему с моим приложением.Я не могу воспроизвести проблему и не могу понять, почему это происходит.Может быть, вы можете?
В Sqlite у меня есть таблица с около 1000 строк, каждая с уникальным идентификатором.Но по какой-то причине идентификатор этой таблицы перезапустился, раньше он был около 1000, но теперь он перезапускается с 80 кое-чего.Поэтому каждый раз, когда пользователь вставляет новую строку, новый назначенный идентификатор начинается примерно с 80, и я получаю два дубликата идентификаторов, которые должны быть уникальными, и да, вы можете понять проблему.Я посмотрел на все запросы, которые что-то делают с этой таблицей, и ни один из них не мог этого сделать.Я всегда ретранслирую на встроенный механизм, где идентификаторы назначаются автоматически.
Вы видели что-нибудь подобное?
Схема таблицы выглядит следующим образом:
CREATE TABLE mytable(
id INTEGER PRIMARY KEY
);
Как видите, я не использую AUTOINCREMENT.Но из того, что я понимаю, даже если пользователь удаляет строку с идентификатором 80, можно дать новый вставленный идентификатор строки 80, но не так, как это работает сейчас, когда база данных просто увеличивает идентификаторы, даже если у меня уже есть строки стот же идентификаторРазве это не должно работать так:
HIGHEST ROWID IS 1000, ALL IDS FROM 0-1000 ARE TAKEN
USER DELETES ROW WITH ID 80
INSERT A NEW ROW
THE ID OF THE INSERTED ROW MIGHT NOW BE 80
SETS THE ID OF THE INSERTED ROW TO 80
INSERT A NEW ROW
THE ID OF THE INSERTED ROW CAN NOT BE 81 AS THIS IS ALREADY TAKEN
SETS THE ID OF THE INSERTED ROW TO 1001
Разве не так это должно работать?