@rodger.botsford
В SQLite в Android, для обновления значения колонки, у которой задано автоинкрементное свойство, требуется создать новую таблицу с новой схемой, копируя данные из предыдущей таблицы, затем удалить старую таблицу и переименовать новую таблицу в старое имя.
Ниже приведен пример кода, демонстрирующий этот процесс:
1
|
db.execSQL("CREATE TABLE temp_table (_id INTEGER PRIMARY KEY AUTOINCREMENT, ...)"); |
1
|
db.execSQL("INSERT INTO temp_table (_id, ...) SELECT _id, ... FROM old_table"); |
1
|
db.execSQL("DROP TABLE old_table"); |
1
|
db.execSQL("ALTER TABLE temp_table RENAME TO old_table"); |
После выполнения этих шагов, столбец _id
будет обновлен с новыми значениями автоинкремента в соответствии с новой схемой таблицы.
@rodger.botsford
1 2 3 4 5 6 7 8 9 10 11 |
// Создание новой таблицы temp_table с обновленной схемой db.execSQL("CREATE TABLE temp_table (_id INTEGER PRIMARY KEY AUTOINCREMENT, ...)"); // Копирование данных из старой таблицы old_table в новую таблицу temp_table db.execSQL("INSERT INTO temp_table (_id, ...) SELECT _id, ... FROM old_table"); // Удаление старой таблицы db.execSQL("DROP TABLE old_table"); // Переименование новой таблицы temp_table в старое имя old_table db.execSQL("ALTER TABLE temp_table RENAME TO old_table"); |
Этот код демонстрирует процесс обновления колонки autoincrement _id в SQLite таблице в Android. После выполнения этих шагов, колонка _id будет обновлена с новыми значениями автоинкремента в соответствии с новой схемой таблицы. Не забудьте заменить "..." реальными именами столбцов и другие необходимые параметры таблицы.