УДАЛЕНИЕ ПРОСМОТРА
Синтаксис
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]
Описание
DROP VIEW удаляет один или несколько просмотров. У вас должен быть привилегия DROP для каждого просмотра. Если какой-либо из указанных в списке просмотров не существует, MariaDB возвращает ошибку, указывая по имени те не существующие просмотры, которые не удалось удалить, но также удаляет все просмотры в списке, которые существуют.
Оператор IF EXISTS предотвращает ошибку для просмотров, которые не существуют. Когда этот оператор используется, для каждого несуществующего просмотра генерируется NOTE. Смотрите SHOW WARNINGS.
RESTRICT и CASCADE, если указаны, анализируются и игнорируются.
Можно указать имена просмотров как db_name.view_name. Это полезно для удаления просмотров из нескольких баз данных одной инструкцией. Смотрите Квалификаторы идентификаторов для получения подробностей.
Для использования DROP TABLE на не временных таблицах требуется привилегия DROP. Для временных таблиц привилегия не требуется, так как такие таблицы видны только для текущей сессии.
Если просмотр ссылается на другой просмотр, будет возможность удалить просматриваемую таблицу. Однако другой просмотр будет ссылаться на просмотр, которого больше не существует. Таким образом, запросы к нему будут вызывать ошибку, подобную следующей:
ERROR 1356 (HY000): View 'db_name.view_name' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
Эта проблема сообщается в выводе CHECK TABLE.
Обратите внимание, что использование DROP VIEW для замены существующего просмотра не требуется, так как CREATE VIEW имеет оператор OR REPLACE.
Атомарные DDL
MariaDB 10.6.1 поддерживает Атомарные DDL и DROP VIEW для отдельного просмотра атомарные. Удаление нескольких просмотров безопасно при сбоях.
Примеры
DROP VIEW v,v2;
Учитывая просмотры v и v2, но нет просмотра v3
DROP VIEW v,v2,v3; ERROR 1051 (42S02): Unknown table 'v3'
DROP VIEW IF EXISTS v,v2,v3; Query OK, 0 rows affected, 1 warning (0.01 sec) SHOW WARNINGS; +-------+------+-------------------------+ | Level | Code | Message | +-------+------+-------------------------+ | Note | 1051 | Unknown table 'test.v3' | +-------+------+-------------------------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/drop-view/