Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Удаление ограничений
Удаление ограничений
Необходимо выполнять удаление ограничений в правильной последовательности, если ограничения PRIMARY KEY и CHECK имеют зависимости.
! ! !
СОВЕТ. Для поиска имен ограничений может оказаться полезным выполнение четырех системных просмотров, определенных в скрипте system_views.sql, представленном в приложении 9.
. ! .
Ограничения UNIQUE KEY и PRIMARY KEY
При удалении ограничений первичного и уникального ключа необходимо вначале найти и удалить все ссылающиеся на них ограничения внешних ключей. Если речь идет об уникальном ключе, то объявление внешнего ключа перечисляет имена столбцов уникального ключа, например:
. . .
FK_DATA_ID FOREIGN KEY DATA_ID
REFERENCES TEST_UQ (DATA_I D) ;
Если ключ, на который имеются ссылки, является первичным ключом, то имя столбца первичного ключа является необязательным в объявлениях внешнего ключа и часто опускается. Например, посмотрите на базу данных ../samples/employee.gdb:
...TABLE PROJECT (
. . . ,
TEAM_CONSTRT FOREIGN KEY(TEAM_LEADER)
REFERENCES EMPLOYEE );
Удаление ограничения внешнего ключа простое:
ALTER TABLE PROJECT
DROP CONSTRAINT TEAM_CONSTRT;
COMMIT;
После этого становится возможным удаление ограничения первичного ключа для столбца EMP_NO таблицы EMPLOYEE:
ALTER TABLE EMPLOYEE
DROP CONSTRAINT EMP_NO_CONSTRT ;
Ограничения CHECK
Любые условия CHECK, которые были добавлены в процессе определения таблицы, могут быть удалены без каких-либо осложнений. Условия CHECK, наследуемые от домена, являются более проблематичными. Для освобождения от ограничений домена необходимо выполнить операцию ALTER TABLE ALTER COLUMN ... TYPE для изменения типа данных столбца или указания другого домена.
- Удаление таблиц и индексов с помощью предложения DROP
- Удаление столбцов
- Добавление ограничений в таблицу
- Добавление простых ограничений
- Имена индексов ограничений
- Удаление шаблонов узлов STP
- Удаление учебного узла
- Удаление файлов занятий
- Удаление узла
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка
- Удаление списка