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

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

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

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

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

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

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

Обновление БД без потери данных ?
Здарвствуйте. У меня такая ситуация: Есть бд и в нем куча данных. И этот бд лежит на сервере,...

Добавить товар, без потери данных
Дорогие друзья! Столкнулся с такой проблемой. У меня есть новая и старая версия движка. У меня...

Переход с ХР на win 7 без потери данных
Ситуация такая: Есть компьютеры с вин хр с кучей бухгалтерских программ, настроек. Для работы с...

5
REALIST07
Автор FAQ
Автор FAQ
195 / 194 / 21
Регистрация: 11.06.2010
Сообщений: 1,015
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
298 / 103 / 41
Регистрация: 02.12.2015
Сообщений: 247
08.09.2016, 13:32 3
А зачем два раза копировать? Можно один раз просто переименовать таблицу (старую во временную или временную в новую).
0
Tester64
397 / 357 / 47
Регистрация: 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
195 / 194 / 21
Регистрация: 11.06.2010
Сообщений: 1,015
08.09.2016, 18:51 5
Tester64, попробуй открыть базу просто в хорошем менеджере и там переименовать руками
0
Tester64
397 / 357 / 47
Регистрация: 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

Переустановка системы без потери данных
Здравствуйте,уважаемые!Прошу помочь в вопросе о переустановке windows 8.1,без потери данных и...

Перебить диск без потери данных
Существует жесткий диск, который на данный момент полностью занимает один раздел с файловой...

Установка Ubuntu без потери данных
Салют, решил в первый раз устанавливать Ubuntu без Windows, раньше нажимал кнопку установка рядом с...


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

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

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