Как обновить колонку autoincrement _id в sql в android?

Пользователь

от rodger.botsford , в категории: Другие , 6 месяцев назад

Как обновить колонку autoincrement _id в sql в android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от francis_schuster , 6 месяцев назад

@rodger.botsford 

В SQLite в Android, для обновления значения колонки, у которой задано автоинкрементное свойство, требуется создать новую таблицу с новой схемой, копируя данные из предыдущей таблицы, затем удалить старую таблицу и переименовать новую таблицу в старое имя.


Ниже приведен пример кода, демонстрирующий этот процесс:

  1. Создайте новую таблицу temp_table с обновленной схемой, включая требуемые изменения в колонке _id:
1
db.execSQL("CREATE TABLE temp_table (_id INTEGER PRIMARY KEY AUTOINCREMENT, ...)");


  1. Скопируйте данные из старой таблицы old_table в новую таблицу temp_table. Здесь вы можете использовать любой способ для копирования данных, например, использовать оператор INSERT INTO ... SELECT ...:
1
db.execSQL("INSERT INTO temp_table (_id, ...) SELECT _id, ... FROM old_table");


  1. Удалите старую таблицу:
1
db.execSQL("DROP TABLE old_table");


  1. Переименуйте новую таблицу temp_table в старое имя old_table:
1
db.execSQL("ALTER TABLE temp_table RENAME TO old_table");


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