Команду ALTER TABLE удобно применять для изменения таблицы, используемой приложением в рабочей базе данных. Вместо приостановки или завершения приложения для выполнения обслуживающих операций команда Oracle7 ALTER TABLE позволяет вам модифицировать таблицу, не влияя на доступность приложения.
Примечание
Для изменения таблицы с помощью команды ALTERTABLEвы должны быть владельцем таблицы или иметь системные полномочия ALTERANYTABLE.
Добавление и модификация столбцов
Один из способов изменения таблицы состоит в модификации существующего столбца или добавлении другого столбца, который вы забыли включить. Ключевые слова ADD и MODIFY команды ALTER TABLE позволяют вам легко изменять структуру существующей таблицы. Приведем несколько примеров. показывающих, как можно использовать команду ALTER TABLE для добавления или изменения определений столбцов:
ALTER TABLE customer ADD (fax VARCHAR2(10))
ALTER TABLE customer MODIFY (fax VARCHAR2(10))
ALTER TABLE sales.orders MODIFY (status CHAR(1) DEFAULT null)
Первый оператор добавляет к таблице CUSTOMER новый столбец — номер факса покупателя. Второй оператор модифицирует новый столбец FAX, расширяя его максимальную длину. Третий оператор изменяет в таблице ORDERS заданное по умолчанию выражение столбца STATUS.
Примечание
Ключевое слово MODIFY можно использовать также для уменьшения размера столбца или его типа данных. Однако Oracle7 позволяет вам выполнять эти операции только в том случае, когда столбец содержит значения NULL.
Добавление и модификация ограничений целостности
Правила, хотя это и правила, также могут изменяться. Если вы решили изменить связанные с таблицей правило целостности, то можете использовать ключевые слова ADD, MODIFY и DROP команды ALTER TABLE. Чтобы удалять и добавлять ограничения с помощью команды ALTER TABLE, нужно знать кое-что о синтаксисе SQL Oracle:
· Чтобы добавить новые ограничения целостности отдельно от нового определения столбца в предложении ADD clause, можно использовать ключевые слова PRIMARY KEY, UNIQUE, FOREIGN KEY и CHECK (как в команде CREATE TABLE).
· Для удаления ограничений целостности в предложении DROP вы можете использовать ключевые слова PRIMARY KEY и UNIQUE KEY (для удаления основного или уникального ключа) или CONSTRAINT (для удаления ограничений FOREIGN KEY и CHECK по их именам).
Следующие операторы показывают, как можно использовать эти ключевые слова для модификации ограничений целостности таблицы
ALTER TABLE customer ADD (fax VARCHAR2(20) NOT NULL)
ALTER TABLE customer MODiFY (fax VARCHAR2(20) NULL)
ALTER TABLE customer ADD (PRIMARY KEY (id))
ALTER TABLE customer DROP UNIQUE (lastname, firstname)
ALTER TABLE customer DROP PRiMARY KEY CASCADE
ALTER TABLE customer DROP CONSTANT sys0991
Первый оператор в чем-то повторяет предыдущий пример, однако показывает, что добавить к таблице новый столбец вы можете одновременно с определением в столбце нового ограничения ссылочной целостности. Второй пример показывает, как удалить из определения столбца ограничение целостности NOT NULL. Третий пример демонстрирует добавление ограничения целостности PRIMARY KEY, а в остальных вы можете видеть, как удаляются конкретные ограничения целостности. Обратите внимание на оператор, удаляющий в таблице CUSTOMER первичный ключ: в него включено ключевое слово CASCADE, задающее каскадное удаление первичного ключа для всех зависящих от него внешних ключей.
Определение имен для ограничений целостности
Чтобы определить имена для различных ограничений целостности базы данных. вы можете запросить их в словаре данных DBA_CONSTRAINTS или USER_CONSTRAINTS. Например, следующий запрос возвращает имена всех ограничений для таблицы ITEM:
SELECT constraint_name, constraint_type, search_condition
FROM sys.dba_constraints
WHERE owner = 'SALES'
AND table_name = ITEM;
CONSTRAINT_NAME С SEARCH_CONDITION
SYS_C00436 С STOCKID IS NOT NULL
SYS_C00437 С QUANTITY IS NOT NULL
SYS_C00438 P
SYS_C00439 R
SYS_C00440 R
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.