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

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

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

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

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

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

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

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

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

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

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


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