У меня есть первое действие, где я создаю базу данных и вставляю некоторые данные. Во втором упражнении я удаляю данные из своей БД, и я хотел бы знать, как изменить порядок номеров идентификаторов строк в последовательном порядке.
Например, моя БД после удаления некоторых строк выглядит так:
-------- 1 ------------- ------------- Вопрос1 Ответ1 --------- 0
-------- 3 ------------- ------------- Вопрос2 Ответ2 --------- 3
-------- 5 ------------- ------------- Question3 Ответ3 --------- 5
После выхода из своей деятельности я хочу выглядеть так:
-------- 1 ------------- ------------- Вопрос1 Ответ1 --------- 0
-------- 2 ------------- ------------- Вопрос2 Ответ2 --------- 3
-------- 3 ------------- ------------- Вопрос3 Ответ3 --------- 5
Пробовал функцию onDestroy (), используя эту
@ Override
защищенная пустота на Дестрой () {
super.onDestroy();
if (mDbHelper != null) {
for(int i=0; i<mDbHelper.countRows(); i++){
try{
mDbHelper.updateDate(Integer.toString(i++), ggQuestions[i], ggAnswers[i], pozz++);
}catch(Exception ex){}
}
mDbHelper.close();
}
}
где mDbHelper - моя база данных, мой первичный ключ - строка (поэтому я использую целое число в строку), а моя функция updateDate sql выглядит следующим образом:
mDb.execSQL("UPDATE flagtable SET _id="+_superID+", answer='"+answ+"', position="+
Integer.toString(pozz)+" WHERE question='"+quest+"'");
Я получаю эту ошибку: первичный ключ сбоя 19 должен быть уникальным при выполнении UPDATE