Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение типа поля / 13 сообщений из 13, страница 1 из 1
25.10.2016, 01:46
    #39333200
Sashaua
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Подскажите, правильный вариант решения я выбрал?
Есть база N лет в базе в таблице есть поле INTEGER (в индексах участия не принимает), сейчас возникла необходимость изменить тип поля на double precision.
1. Создаем поле двойник double precision.
2. Переливаем данные с поля INTEGER > double precision.
3. Удаляем поле INTEGER.
4. Переименовываем поле double precision в old name поля INTEGER.
...
Рейтинг: 0 / 0
25.10.2016, 02:24
    #39333201
Товарищ младший сержант
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Sashaua,

Не забудь про зависимости на это поле: констреинты, триггеры, процедуры, вью...
В общем, ибэкспета те в руки.
...
Рейтинг: 0 / 0
25.10.2016, 09:11
    #39333256
МММккк
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
меняй запросам в таблице где хранятся все поля базы
...
Рейтинг: 0 / 0
25.10.2016, 09:31
    #39333271
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
МММкккменяй запросам в таблице где хранятся все поля базы

Совет вредный. Очень.
...
Рейтинг: 0 / 0
25.10.2016, 10:33
    #39333325
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
SashauaПодскажите, правильный вариант решения я выбрал?
Есть база N лет в базе в таблице есть поле INTEGER (в индексах участия не принимает), сейчас возникла необходимость изменить тип поля на double precision.
1. Создаем поле двойник double precision.
2. Переливаем данные с поля INTEGER > double precision.
3. Удаляем поле INTEGER.
4. Переименовываем поле double precision в old name поля INTEGER.Это правильный (канонический) путь, долгий, но дающий гарантированный результат . Да, еще можно воспользоваться компарером эксперта, чтобы потом быстро вернуть закоментаренные депенденсы в работу.

Есть еще alter column и смена домена с его помощью.

Править системные таблице, как советуют выше НЕ НАДО, это может привести к очень "веселым" последствиям.
...
Рейтинг: 0 / 0
25.10.2016, 10:57
    #39333346
Sashaua
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Всем спасибо за советы, работаем по намеченному плану.
...
Рейтинг: 0 / 0
27.10.2016, 17:57
    #39335684
МККК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Ivan_PisarevskyПравить системные таблице, как советуют выше НЕ НАДО, это может привести к очень "веселым" последствиям.
Что ты придумал. Домены и хранятся в системной таблице.

К примеру:
update RDB$RELATION_FIELDS
set RDB$FIELD_SOURCE = 'CURRENCY'
where
RDB$FIELD_NAME = 'COST'
and RDB$RELATION_NAME = 'CARD'
...
Рейтинг: 0 / 0
27.10.2016, 18:02
    #39335689
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
МККК,

перестань постить неверные советы. Как уже сказали прямая модификация системных таблиц может закончится плачевно. В тройке твой совет вообще не работает.
...
Рейтинг: 0 / 0
31.10.2016, 09:15
    #39337519
МККК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Симонов Денис,

Говорю про 2.5. Даже IBExpert делает тоже самое при изменении в таблице с данными. Так что сказки не рассказывай.
...
Рейтинг: 0 / 0
31.10.2016, 09:24
    #39337529
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
МККК,

охохонюшки....
...
Рейтинг: 0 / 0
31.10.2016, 09:41
    #39337547
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
МККК,

мало ли что там делает IBExpert. Есть правильный путь через DDL, который описан в документации. ЕМНИП последние версии IBE уже так не делают, по крайней мере для 3.0 точно. Пожелание о работе через DDL в IBE было моим если что.

Так что не учи плохому.
...
Рейтинг: 0 / 0
31.10.2016, 10:47
    #39337637
МККК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
Симонов Денис,
Посмотрел новую версию IBExpert. Там уже и вправду через DDL.
...
Рейтинг: 0 / 0
31.10.2016, 14:12
    #39337921
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля
МККК,

а не надо было IBExpert-ом тыкать. Были времена, когда DDL не хватало для модификации данных. Постепенно в ФБ все эти дыры закрыли, DDL есть практически на все.
В IBExpert хоть и правильные запросы были, но модификация метаданных мимо DDL всегда считалась опасной, и немало людей на этом погорели, в том числе и через IBExpert.

А вот некоторые анонимусы, глядя на IBExpert, почему-то начали считать модификацию метаданных через системные таблицы единственно правильным. И еще и указывать другим, что мол, они "ничего не понимают".
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение типа поля / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]