Глава 19. Удаление таблицы и обзора

Мы, кажется, извлекли все удовольствия из таблицы planet, кроме последнего. Наконец можем удалить эту таблицу (хотя бы для того, чтобы научиться это делать).

test54=# DROP TABLE planet_data;
NOTICE:  правило _RETURN напредставление planet зависит от таблица planet_data
NOTICE:  представление planet зависит от правило _RETURN напредставление planet
ERROR:  нельзя удалить таблица planet_data по причине наличия зависимых объектов
ПОДСКАЗКА:  Используйте DROP ... CASCADE чтобы также удалить зависимые объекты.

Чудовищное сообщение об ошибке является вызовом всем людям доброй воли. Оставим его на совести переводчиков. Однако суть его можно понять. Мы пытаемся удалить один объект (таблицу planet_data), от которого зависит другой (обзор planet, его переводчики назвали представлением). Существование обзора planet теряет всякий смысл в отсутствие planet_data, к которой этот обзор обращается. Можно было бы сначала удалить зависимые объекты, а затем и саму таблицу:

DROP VIEW planet;
DROP TABLE planet_data;

Но можно, как нам подсказывают, сделать так:

test54=# DROP TABLE planet_data CASCADE;
NOTICE:  удаление снисходит до правило _RETURN напредставление planet
NOTICE:  удаление снисходит до представление planet
DROP TABLE

При каскадном удалении кроме самого объекта удаляются также и зависимые от него объекты.

Информатика-54