Инструкция ALTER TABLE в Oracle
Используя команду Oracle ALTER TABLE, вы можете добавлять, удалять и изменять все аспекты всех элементов таблицы. Например, в схеме синтаксиса показано, что метод добавления или изменения столбца включает и атрибуты столбца, но мы должны ясно сказать, что в эти атрибуты входят все расширения, специфичные для Oracle то есть там, где стандарт ANSI позволяет изменять только такие атрибуты, как DEFAULT и NOT NULL, и ограничения уровня столбца, Oracle разрешает изменять любые имеющиеся специальные характеристики, такие, как LOB, VARRAY, NESTED TABLE, индекс-таблицы, CLUSTER и PARTITION.
Например, в следующем фрагменте кода к таблице Oracle добавляется новый столбец, а также к этой таблице добавляется новое ограничение UNIQUE.
ALTER TABLE titles ADD subtitle VARCHAR2(32) NULL CONSTRAINT unq_subtitle UNIQUE;
Если в таблицу добавляется ограничение — внешний ключ (FOREIGN KEY), СУБД проверяет на соответствие этому ограничению все данные таблицы. Если возникает ошибка, операция ALTER TABLE отменяется.
Любые запросы с инструкцией SELECT возвращают новые столбцы, а далее если это не планировалось. Скомпилированные объекты, такие, как записанные процедуры, могут возвращать любые новые столбцы, если в них используется атрибут %ROWTYPE. В противном случае скомпилированный объект не возвращает новых столбцов.
В Oracle разрешается использовать несколько действий, таких, как ADD и MODIFY, применительно к нескольким столбцам. Действия должны заключаться в скобки. Например, следующая команда добавляет в таблицу несколько столбцов в одной инструкции.
ALTER TABLE titles ADD
(subtitles VARCHAR2(32) NULL,
year_of_copyright INT,
date_of_origin DATE);