Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
#1

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

08.09.2016, 03:10. Просмотров 657. Ответов 5
Метки нет (Все метки)

Гуру, может кто видел подобный ГОТОВЫЙ код?

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

Обновление приложения без потери данных
Добрый день, Создал приложение имеющая базу данных SLQite с помощью android...

Достать определённый столбец из SQLite
Знаю про moveToFirst, moveToNext, а что делать если нужно достать данные из...

Как обновить одно поле в таблице SQLite Android
Привет. Встал вопрос... Как обновить только одну запись в таблице SQLite -...

Как найти id записи в SQlite таблице при клике на кнопку расположенную в Listview item?
привет ! подскажите пожалуйста решение((( Кейс: у меня есть листвью ,...

Постолбцовое отображение данных из базы данных SQLite
Уважаемые форумчане, помогите пожалуйста. Необходимо вывести данные из таблицы...

Вывод данных из базы данных SQLite
Здравствуйте уважаемые форумчане! Делаю программу для работы с базой данных...

5
REALIST07
Автор FAQ
Автор FAQ
181 / 181 / 20
Регистрация: 11.06.2010
Сообщений: 949
08.09.2016, 13:14 #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
0
Lumber
295 / 100 / 41
Регистрация: 02.12.2015
Сообщений: 241
08.09.2016, 13:32 #3
А зачем два раза копировать? Можно один раз просто переименовать таблицу (старую во временную или временную в новую).
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
08.09.2016, 17:09  [ТС] #4
Цитата Сообщение от REALIST07 Посмотреть сообщение
Тут нужен скрипт:
Подобный скрипт уже находил... мне бы ГОТОВУЮ функцию... field_rename(db, "table1", "field_old", "field_new")
В php помню зачем-то анализ полей таблицы запрашивал. А заодно мог переставлять поля внутри таблицы (менять порядок для "select * from").
...если готовой нет, то мне проще php-шную переписать...
0
REALIST07
Автор FAQ
Автор FAQ
181 / 181 / 20
Регистрация: 11.06.2010
Сообщений: 949
08.09.2016, 18:51 #5
Tester64, попробуй открыть базу просто в хорошем менеджере и там переименовать руками
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
08.09.2016, 19:04  [ТС] #6
Цитата Сообщение от REALIST07 Посмотреть сообщение
попробуй открыть базу просто в хорошем менеджере и там переименовать руками
Не смешно!
Есть программа, которая может быть установлена на десятке-миллионе устройств. База заполнена каждым пользователем "под себя". Я выпускаю новую версию программы, где в несколько таблиц надо внести изменения структуры перед работой. Например поле "name "заменить на "name_short", а "name_full" поставить на старое "name". И я к каждому с "менеджером" полезу??? В особой таблице записана версия структуры базы. При запуске моя программа обнаружит что надо 201, а было 198 и проделает все "промежуточные" обновления таблиц. Без потерь, без вмешательств "вручную"...

Не по теме:

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



Похоже готового решения (как всегда) нет... буду писать сам! Вопрос закрываю!
0
08.09.2016, 19:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2016, 19:04
Привет! Вот еще темы с решениями:

База данных SQLite
Добрый день. Может я повторюсь с вопросом, но вы уж меня простите, не могу...

База данных sqlite
Доброго времени суток. Пишу приложение в котором возможна отправка ...

SQLite вывод данных
Здравствуйте. Подскажите, как вывести данные из колонки БД и записать в...

Переименовать столбец в таблице Access
Здравствуйте, подскажите как переименовать столбец использовал alter table...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru