Ded пишет:
В моём понимании - да. Правишь его, не зная где он использован по
делу чи не очень (а даже в средних размеров командах это запросто, да и
склероз-бодун даже если один работаешь) и получашь сурпрайз где-нить не
Sorry, а зачем вообще править домены, рискуя нарваться на грабли, и
не использовать штатную возможность
ALTER TABLE T ALTER A TYPE ....
?
Кроме того у домена типа CHAR40 править тип или длину IMHO смысла
никакого нет,
в отличие, скажем, от RDB$1665.
Ну прикинь. Прокололся ты с размером строкового поля - не хватает
пары символов. А то не бывает. Проальтерил и спишь спокойно, в аппликухе
Еще как бывает!
Так если никаких ALTER DOMAIN, а просто
CREATE NEWDOMAIN TYPE ....
ALTER TABLE T1 ALTER A TYPE NEWDOMAIN
ALTER TABLE T2 ALTER B TYPE NEWDOMAIN
ALTER TABLE T3 ALTER C TYPE NEWDOMAIN
здесь-то откуда проблемы могут возникнуть ?
Ну если потом еще UPDATE T1 SET A=A сделать.
Причем если сразу озаботиться созданием уникальных пользовательских
доменов по типу
NOMENKL D_NOMENKL,
PAP_NAME D_PAP_NAME,
LISTOR_ZAKPRV D_LISTOR_ZAKPRV,
То подобная проблема порождена самим собой и сразу. А здесь мы имеем
багу. Поскольку я не любитель альтерить типы вообще и это в основном
С какой стати появится проблема, если, скажем, для каждого столбца каждой
таблицы предварительно нагенерировать свой уникальный домен?
И никогда не править сами типы (домены) ?
Грубо говоря:
create domain D_T1_ID ...
create domain D_T1_C1 ...
create domain D_T1_C2 ...
create domain D_T2_ID ...
...
create table T1 ( ID D_T1_ID, ...)
create table T2 ( ID D_T2_ID, ...)
...
Чем такие "свои" домены для пользователя БД будут отличаться от
автоматически создаваемых системных, кроме имени?
Ведь тогда при первом же взгляде на метаданные, если
create table T999 ( ID D_T1_ID, ...)
ошибку при использовании "чужого" домена видно сразу,
а не после ковыряния системных таблиц.
--
Игорь Захребетков