рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Разрешение и запрет ограничений

Разрешение и запрет ограничений - раздел Программирование, Объекты базы данных. Язык определения данных Oracle Sql Позволяет Запретить Или Разрешить Проверку Ограничения, Например, ...

Oracle SQL позволяет запретить или разрешить проверку ограничения, например, для ускорения загрузки большого количества строк. После выполнения операции, которую может сильно замедлить проверка ограничений, действие ограничений можно опять разрешить. Для запрета и разрешения ограничений используются ключевые слова DISABLE и ENABLE.

ALTER TABLE [схема.]имя_таблицы {ENABLE | DISABLE} CONSTRAINT имя_ограничения [CASCADE]

При разрешении ограничений UNIQUE и PRIMARY KEY автоматически создаются соответствующие индексы. Запретить и разрешить действие ограничения можно, также, при создании таблицы командой CREATE TABLE. Для запрета всех зависимых ограничений используйте ключевое слово CASCADE.

SQL> SELECT constraint_name, constraint_type, status

2 FROM user_constraints WHERE table_name IN ('T1', 'T2');

CONSTRAINT_NAME C STATUS

------------------------------ - --------

T1_PK P ENABLED

T2_FIRST_FK R ENABLED

SQL> ALTER TABLE t1 DISABLE CONSTRAINT t1_pk CASCADE;

Table altered.

SQL> SELECT constraint_name, constraint_type, status

2 FROM user_constraints WHERE table_name IN ('T1', 'T2');

CONSTRAINT_NAME C STATUS

------------------------------ - --------

T1_PK P DISABLED

T2_FIRST_FK R DISABLED

Если Вы разрешаете ограничения, все данные в таблице должны ему соответствовать. В противном случае сервер Оracle вернет ошибку.

Например, пустая таблица t1 имеет первичный ключ. Таблица t2 имеет колонку, на которую наложено ограничение внешнего ключа, ссылающееся на таблицу t1. Запрещение действия ограничения внешнего ключа позволило вставить в таблицу t2 строки, содержащие внешний ключ, значения которого не соответствуют ни одному значению первичного ключа в таблице t1. Однако при попытке разрешить ограничение внешнего ключа сервер Oracle выдает ошибку, сообщающую о том, что родительский ключ для ограничения не найден.

SQL> SELECT * FROM t1;

no rows selected

SQL> SELECT * FROM t2;

FIRST NAME

--------- --------------------

1 One

2 Two

SQL> ALTER TABLE t1 ENABLE CONSTRAINT t1_pk;

Table altered.

SQL> ALTER TABLE t2 ENABLE CONSTRAINT t2_first_fk;

ALTER TABLE t2 ENABLE CONSTRAINT t2_first_fk

*

ERROR at line 1:

ORA-02298: cannot validate (INSTRUCTOR.T2_FIRST_FK) - parent keys not found

SQL> INSERT INTO t1 VALUES (1, 1);

1 row created.

SQL> INSERT INTO t1 VALUES (2, 2);

1 row created.

SQL> ALTER TABLE t2 ENABLE CONSTRAINT t2_first_fk;

Table altered.

– Конец работы –

Эта тема принадлежит разделу:

Объекты базы данных. Язык определения данных

На сайте allrefs.net читайте: "Объекты базы данных. Язык определения данных"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Разрешение и запрет ограничений

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Объекты базы данных. Язык определения данных
Схема Язык определения данных Определения таблиц Создание таблиц Временные таблицы Создание таблицы из другой таблицы Изменение структуры табли

Язык определения данных
Для создания объектов и изменения структуры объектов в базе данных используется язык определения данных (Data Definition Language - DDL

Определения таблиц
В реляционной базе данных основным объектом является таблица. Реляционная системы управления базами данных позволяет определить структуру таблицы, изменить ее или удалить. Основные команды Oracle S

Временные таблицы
Если определен параметр GLOBAL TEMPORARY, то таблица является временной. Временными таблицами называются таблицы, данные в которых разрушаются в конце каждого сеанса или ран

Создание таблицы из другой таблицы
Команда CREATE TABLE позволяет создать пустую таблицу, которую необходимо в дальнейшем заполнить данными. Oracle SQL предоставляет дополнительную возможность определения таблицы, позволяющую создат

Изменение столбца
Для изменения определения столбца используется ключевое слово MODIFY. определение_изменяемого_столбца = (имя_столбца1 [тип_данных] [DEFA

Удаление столбца
Вы можете удалить колонки, которые Вам больше не нужны, освободив занимаемое ими пространство. Для этого используется ключевое слово DROP. определение_удаляемых_столбцов =

Удаление ограничения
Вы можете удалить любое ограничение с помощью ключевого слова DROP. определение_удаляемого_ограничения = {PRIMARY KEY | UNIQUE (список_столбцов

Удаление таблицы
Для удаления таблицы используется команда языка определения данных DROP TABLE. Сервер не запрашивает подтверждения команды при удалении таблицы, отменить команду невозможно, поэтому будьте особенно

Словарь данных
В словаре данных хранится информация о самой базе данных. Словарь данных представляет собой набор таблиц, создаваемых во время генерации базы данных сервером. Сервер базы данных, также, заботится о

Просмотр объектов пользователя
Вывести имена и типы объектов базы данных, принадлежащих текущему пользователю. SQL> SELECT object_name, object_type FROM user_objects; OBJECT_NAME OBJECT_TYPE -------

Просмотр ограничений
Вывести имена и типы ограничений, а также условия проверки для ограничения CHECK и имена ссылочных ограничений. SQL> SELECT constraint_name, constraint_type, 2 search_condition

Просмотр столбцов, на которые распространяются ограничения
Вывести имена ограничений и имена столбцов, на которые они наложены. SQL> SELECT constraint_name, column_name 2 FROM user_cons_columns; CONSTRAINT_NAME COLUMN_NAME

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги