FirebirdSQL logo
 DOMAININDEX 

Предложение ALTER [COLUMN]

Предложение ALTER [COLUMN] позволяет изменить следующие характеристики существующих столбцов:

  • изменение имени (не изменяет номер формата);

  • изменение типа данных (увеличивает номер формата на единицу);

  • изменение позиции столбца в списке столбцов таблицы (не изменяет номер формата);

  • удаление значения по умолчанию столбца (не изменяет номер формата);

  • добавление значения по умолчанию столбца (не изменяет номер формата);

  • изменение типа и выражения для вычисляемого столбца (не изменяет номер формата);

  • добавление ограничения NOT NULL (не изменяет номера формата);

  • удаление ограничения NOT NULL (не изменяет номера формата).

Переименование столбца

Ключевое слово TO переименовывает существующий столбец.Новое имя столбца не должно присутствовать в таблице.

Невозможно изменение имени столбца, если этот столбец включён в какое-либо ограничение — первичный или уникальный ключ, внешний ключ, ограничение столбца или проверочное ограничение таблицы CHECK.Имя столбца также нельзя изменить, если этот столбец таблицы используется в каком-либо триггере, в хранимой процедуре или представлении.

Example 1. Переименование столбца таблицы
ALTER TABLE STOCK
ALTER COLUMN MODELNAME TO NAME;

Изменение типа столбца

Ключевое слово TYPE изменяет тип существующего столбца на другой допустимый тип.Не допустимы любые изменения типа, которые могут привести к потере данных.Например, количество символов в новом типе для столбца не может быть меньше, чем было установлено ранее.

Если столбец был объявлен как массив, то изменить ни его тип, ни размерность нельзя.

Нельзя изменить тип данных у столбца, который принимает участие в связке внешний ключ / первичный (уникальный) ключ.

Example 1. Изменение типа столбца таблицы
ALTER TABLE STOCK
ALTER COLUMN ITEMID TYPE BIGINT;

Изменение позиции столбца

Ключевое слово POSITION изменяет позицию существующего столбца.Позиции столбцов нумеруются с единицы.

  • Если будет задан номер позиции меньше 1, то будет выдано соответствующее сообщение об ошибке.

  • Если будет задан номер позиции, превышающий количество столбцов в таблице, то изменения не будут выполнены, но ни ошибки, ни предупреждения не последуют.

Example 1. Изменение позиции столбца таблицы
ALTER TABLE STOCK
ALTER COLUMN ITEMID POSITION 5;