Допускаются лишь совместимые (по типу данных) изменения, остальное в сад.

Два примера:

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 символов.

Но вопрос не в этом. Вопрос в том почему нельзя попытаться укоротить и если все поля влезут, то всё нормально, а иначе нах. слать...

Ответить