Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер баз: изменение вычисляемого поля с применением нового поля / 7 сообщений из 7, страница 1 из 1
22.07.2016, 07:03
    #39278316
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
Было вычисляемое поле:
Код: sql
1.
COMPUTED_FIELD COMPUTED BY (F1 + F2).


Потом было добавлено новое поле и изменено вычисляемое поле:
Код: sql
1.
COMPUTED_FIELD COMPUTED BY (F1 + F2 + F3). 



Компарер генерирует скрипт, в котором сначала альтерится вычисляемое поле, и только потом добавляется поле:
Код: sql
1.
2.
3.
ALTER TABLE T ALTER COMPUTED_FIELD COMPUTED BY (F1 + F2 + F3);

ALTER TABLE T ADD F3 INTEGER;


Последовательность должна быть наоборот.
...
Рейтинг: 0 / 0
22.07.2016, 09:25
    #39278358
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
CyberMax,

он наверное на порядок полей ориентируется. А вот тут то и засада.
...
Рейтинг: 0 / 0
22.07.2016, 09:55
    #39278384
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
Симонов Денис,

Ты прав. Новые поля идут после того вычисляемого поля.
...
Рейтинг: 0 / 0
22.07.2016, 13:55
    #39278656
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
CyberMax,

проще позицию поля поменять.
1. IBE всё равно не сможет сделать всего анализа зависимостей. Тем более что для вычисляемых полей нет никаких dependeces, а следовательно зависимости можно распознать только парсингом выражения.
2. Даже если IBE задвинет вычисляемое поле в конец, то ему потом ещё нужно догадаться переставить поля местами.
...
Рейтинг: 0 / 0
25.07.2016, 10:38
    #39279440
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
интересно все же как gbak это распознает

в 5.х это был как раз один из способов сделать невосстановимый, я его тогда отрепортил
в 6.0 исправили
...
Рейтинг: 0 / 0
25.07.2016, 11:00
    #39279456
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
Симонов Денис2. Даже если IBE задвинет вычисляемое поле в конец, то ему потом ещё нужно догадаться переставить поля местами.
Денис, это же просто. Сначала добавляем новые поля, потом альтер существующих, а установка позиций полей все равно произойдет в отдельном этапе. Если происходит дроп полей, которые сейчас используются в вычисляемом поле, то они прописываются после альтера.
...
Рейтинг: 0 / 0
27.07.2016, 14:33
    #39281241
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер баз: изменение вычисляемого поля с применением нового поля
Исправил.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер баз: изменение вычисляемого поля с применением нового поля / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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