Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет77/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   73   74   75   76   77   78   79   80   ...   256
sql osnovi yazika

Глава 5. Основы языка определения данных
Возможны несколько вариантов.
1. Удаление связанных строк из таблицы «Успеваемость», что означает, что при
отчислении студента будет удаляться вся история его успехов в учебе. Эта опе-
рация называется каскадным удалением, и для ее реализации в определение
внешнего ключа добавляются ключевые слова ON DELETE CASCADE.
Например:
CREATE TABLE progress
( record_book numeric( 5 ),
...
FOREIGN KEY ( record_book )
REFERENCES students ( record_book )
ON DELETE CASCADE
);
2. Запрет удаления строки из таблицы «Студенты», если в таблице «Успеваемость»
есть хотя бы одна строка, ссылающаяся на удаляемую строку в таблице «Сту-
денты». Для реализации такой политики в определение внешнего ключа до-
бавляются ключевые слова ON DELETE RESTRICT или ON DELETE NO ACTION.
Если в определении внешнего ключа не предписано конкретное действие, то
по умолчанию используется NO ACTION.
Оба эти варианта означают, что если в ссылающейся таблице, т. е. «Успевае-
мость», есть строки, ссылающиеся на удаляемую строку в таблице «Студенты»,
то операция удаления будет отменена, и будет выведено сообщение об ошибке.
Отличие между этими двумя вариантами лишь в том, что при использовании NO
ACTION можно отложить проверку выполнения ограничения на более поздний
строк в рамках транзакции, а в случае RESTRICT проверка выполняется немед-
ленно.
Поэтому если бы внешний ключ определили таким образом:
CREATE TABLE progress
( record_book numeric( 5 ),
...
FOREIGN KEY ( record_book )
REFERENCES students ( record_book )
ON DELETE RESTRICT
);
102


5.1. Значения по умолчанию и ограничения целостности
или таким:


Достарыңызбен бөлісу:
1   ...   73   74   75   76   77   78   79   80   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет