Форум программистов, компьютерный форум CyberForum.ru

Переименовать столбец в SQLite таблице без потери данных - Android

Восстановить пароль Регистрация
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,488
08.09.2016, 03:10     Переименовать столбец в SQLite таблице без потери данных #1
Гуру, может кто видел подобный ГОТОВЫЙ код?

Писал когда-то подобное под PHP - помню там каша из последовательных запросов была...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2016, 03:10     Переименовать столбец в SQLite таблице без потери данных
Посмотрите здесь:

Android SQLite база данных (новичек)
Android Достать определённый столбец из SQLite
Android SQLite обновление базы данных
Структура данных с использованием SQLite Android
Android База данных sqlite
Android База данных SQLite
SQLite вывод данных Android
Android Как обновить одно поле в таблице SQLite Android
Выборка с базы данных SQLite Android
Не создается база данных SQLite Android
Android Как найти id записи в SQlite таблице при клике на кнопку расположенную в Listview item?
Android Запись данных в 2 таблицы SQLite

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
08.09.2016, 13:14     Переименовать столбец в SQLite таблице без потери данных #2
Тут нужен скрипт:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BEGIN TRANSACTION;
-- создаем временную таблицу Temper
CREATE TEMPORARY TABLE Temper_backup(name,temp);
-- копируем данные из таблицы Temper во временную таблицу Temper_backup
INSERT INTO Temper_backup SELECT name,temp FROM Temper;
-- удаляем таблицу Temper
DROP TABLE Temper;
-- создаем таблицу Temper
CREATE TABLE Temper(name,NEW);
-- вставляем данные из таблицы Temper_backup в таблицу Temper
INSERT INTO Temper SELECT name,temp FROM Temper_backup;
-- удаляем таблицу Temper_backup
DROP TABLE Temper_backup;
COMMIT;
Если у тебя много колонок в таблице, юзай любой SQLite manager,в котором можно получить структуру БД в SQL
Lumber
81 / 81 / 30
Регистрация: 02.12.2015
Сообщений: 210
08.09.2016, 13:32     Переименовать столбец в SQLite таблице без потери данных #3
А зачем два раза копировать? Можно один раз просто переименовать таблицу (старую во временную или временную в новую).
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,488
08.09.2016, 17:09  [ТС]     Переименовать столбец в SQLite таблице без потери данных #4
Цитата Сообщение от REALIST07 Посмотреть сообщение
Тут нужен скрипт:
Подобный скрипт уже находил... мне бы ГОТОВУЮ функцию... field_rename(db, "table1", "field_old", "field_new")
В php помню зачем-то анализ полей таблицы запрашивал. А заодно мог переставлять поля внутри таблицы (менять порядок для "select * from").
...если готовой нет, то мне проще php-шную переписать...
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
08.09.2016, 18:51     Переименовать столбец в SQLite таблице без потери данных #5
Tester64, попробуй открыть базу просто в хорошем менеджере и там переименовать руками
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,488
08.09.2016, 19:04  [ТС]     Переименовать столбец в SQLite таблице без потери данных #6
Цитата Сообщение от REALIST07 Посмотреть сообщение
попробуй открыть базу просто в хорошем менеджере и там переименовать руками
Не смешно!
Есть программа, которая может быть установлена на десятке-миллионе устройств. База заполнена каждым пользователем "под себя". Я выпускаю новую версию программы, где в несколько таблиц надо внести изменения структуры перед работой. Например поле "name "заменить на "name_short", а "name_full" поставить на старое "name". И я к каждому с "менеджером" полезу??? В особой таблице записана версия структуры базы. При запуске моя программа обнаружит что надо 201, а было 198 и проделает все "промежуточные" обновления таблиц. Без потерь, без вмешательств "вручную"...

Не по теме:

Сейчас составляю "словарь" для подобных модификаций! добавить поле, добавить таблицу, переименовать таблицу, удалить поле, поменять поля местами, переставить поле в позицию, копировать таблицу, копировать поле, ...



Похоже готового решения (как всегда) нет... буду писать сам! Вопрос закрываю!
Yandex
Объявления
08.09.2016, 19:04     Переименовать столбец в SQLite таблице без потери данных
Ответ Создать тему
Опции темы

Текущее время: 18:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru