Допускаются лишь совместимые (по типу данных) изменения, остальное в сад.
Два примера:
1) Создал домен: CREATE DOMAIN "Key" AS INT;
и таблицу с ПК типа этого домена: CREATE TABLE TAB (ID "Key" PRIMARY KEY);
Данные в таблицу не вставлял!!!
Пишу: ALTER DOMAIN "Key" TYPE BIGINT;
получаю:
MODIFY RDB$FIELDS failed.
action cancelled by trigger (1) to preserve data integrity.
Cannot update index segment used by an Integrity Constraint.
Почему?
2) Еть домен: CREATE DOMAIN "Text" AS VARCHAR(10) CHARACTER SET UTF8
COLLATE UTF8;
Говорю: ALTER DOMAIN "Text" TYPE VARCHAR(9) CHARACTER SET UTF8
А сервер мне: New size specified for column Text must be at least 40
characters.
Что, к стати, неправильно. Небыло у меня 40 символов.
Но вопрос не в этом. Вопрос в том почему нельзя попытаться укоротить и
если все поля влезут, то всё нормально, а иначе нах. слать...