Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Обновление длинны поля  [new]
ECMAScriptNinja
Member

Откуда: Минск
Сообщений: 28
Подскажите по такому вопросу.

Необходимо длину поля изменить(с VARCHAR 50 на 100), меняю данным скриптом(все нормально отрабатывает)
ALTER TABLE TMP_POVERKA ALTER PHONE TYPE VARCHAR(100);

Но если к примеру рука дрогнула/ошибся поменял на 1000 или я хочу вернуть/поменять значение(уменьшить) на 100, то уже не меняет.

Т.е. в большую пожалуйста, а в меньшую уже никак.

Можно конечно создать домен:
CREATE DOMAIN "VARCHAR(100)" AS
VARCHAR(100) CHARACTER SET WIN1251
COLLATE WIN1251;
commit;

и обновить таблицу через домен. Тем самым уменьшив длинну
update RDB$RELATION_FIELDS set
RDB$FIELD_SOURCE = 'VARCHAR(100)'
where (RDB$FIELD_NAME = 'PHONE') and
(RDB$RELATION_NAME = 'TMP_POVERKA')
commit;


А без танцев с бубном есть варианты?

Заранее благодарю!
1 апр 19, 14:46    [21849003]     Ответить | Цитировать Сообщить модератору
 Re: Обновление длинны поля  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
ECMAScriptNinja,

совсем без танцев нет. Но можно создать новое поле с другим именем, перелить в него данные, а затем грохнуть старое, и переименовать новое поле.
1 апр 19, 14:50    [21849010]     Ответить | Цитировать Сообщить модератору
 Re: Обновление длинны поля  [new]
ECMAScriptNinja
Member

Откуда: Минск
Сообщений: 28
Симонов Денис,

Благодарю!
1 апр 19, 14:54    [21849017]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить