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

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

от rodger.botsford , в категории: Другие , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от francis_schuster , год назад

@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 будет обновлен с новыми значениями автоинкремента в соответствии с новой схемой таблицы.

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

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

@rodger.botsford 

Пример кода для обновления колонки autoincrement _id в SQLite в Android:

 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 будет обновлена с новыми значениями автоинкремента в соответствии с новой схемой таблицы. Не забудьте заменить "..." реальными именами столбцов и другие необходимые параметры таблицы.