FirebirdSQL logo
 DOMAININDEX 

Счётчик форматов

Некоторые изменения структуры таблицы увеличивают счётчик форматов, закреплённый за каждой таблицей.Количество форматов для каждой таблицы ограничено значением 255.После того как счётчик форматов достигнет этого значения, вы не сможете больше менять структуру таблицы.

Сброс счётчика форматов
Для сброса счётчика форматов необходимо сделать резервное копирование и восстановление базы данных (утилитой gbak).

Предложение ADD

Предложение ADD позволяет добавить новый столбец или новое ограничение таблицы.Синтаксис определения столбца и синтаксис описания ограничения таблицы полностью совпадают с синтаксисом, описанным в операторе CREATE TABLE.

Воздействие на счётчик форматов:
  • При каждом добавлении нового столбца номер формата увеличивается на единицу.

  • Добавление нового ограничения таблицы не влечёт за собой увеличение номера формата.

Example 1. Добавление столбца в таблицу
ALTER TABLE COUNTRY
ADD CAPITAL VARCHAR(25);
Example 2. Добавление столбца с ограничением NOT NULL
ALTER TABLE OBJECTS
ADD QUANTITY INT DEFAULT 1 NOT NULL;
Important

Обратите внимание на предложение DEFAULT, которое обязательно при добавлении ограничения NOT NULL, если в таблице есть данные.Дело в том, что в этом случае также происходит проверка данных на допустимость.А поскольку при добавлении нового столбца, он для всех строк таблицы содержит значение NULL, будет сгенерировано исключение.

Example 3. Добавление столбца с ограничением уникальности и удаление другого столбца
ALTER TABLE COUNTRY
  ADD CAPITAL VARCHAR(25) UNIQUE,
  DROP CURRENCY;

Для добавления ограничений уровня таблицы необходимо использовать предложение ADD [CONSTRAINT].

Example 4. Добавление проверочного ограничения и внешнего ключа
ALTER TABLE JOB
ADD CONSTRAINT CHK_SALARY CHECK (MIN_SALARY < MAX_SALARY),
ADD FOREIGN KEY (JOB_COUNTRY)
REFERENCES COUNTRY (COUNTRY);
Warning

Будьте осторожны, при добавлении нового ограничения CHECK не осуществляется проверка соответствия ему ранее внесённых данных.Поэтому перед добавлением такого ограничения рекомендуем производить предварительную проверку данных в таблице.