Синтаксис оператора drop VIEW 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Синтаксис оператора drop VIEW



DROP VIEW [IF EXISTS]

view_name [, view_name ]...

[RESTRICT | CASCADE]

Оператор DROP VIEW удаляет одно или более представлений. Для использования оператора необходимо иметь привилегию DROP для каждого представления. Если указанное в операторе представление не существует, MySQL возвращает ошибку о невозможности удаления несуществующего представления.

 

Ограничения представлений в MySQL

· недопустимо создание триггеров для представления,

· представление не создаются на основе временных таблиц; нельзя сделать временное представление;

· в определении представления не допускается использование подзапросов в части FROM,

· в определении представления нельзя использовать системные и пользовательские переменные; внутри хранимых процедур нельзя в определении представления использовать локальные переменные или параметры процедуры,

· в определении представления нельзя использовать параметры подготовленных выражений (PREPARE),

· таблицы и представления, присутствующие в определении представления должны существовать.

· только представления, удовлетворяющие ряду требований, допускают запросы типа UPDATE, DELETE и INSERT.

 

Обновляемость представлений

Представление называется обновляемым, если к нему могут быть применимы операторы UPDATE и DELETE для изменения данных в таблицах, на которых основано представление. Для того, чтобы представление было обновляемым должно быть выполнено 2 условия:

1. Соответствие 1 к 1 между строками представления и таблиц, на которых основано представление, т.е. каждой строке представления должно соответствовать по одной строке в таблицах-источниках.

2. Поля представления должны быть простым перечислением полей таблиц, а не выражениями col1/col2 или col1+2.

Встречающиеся в русскоязычной литературе требования, чтобы обновляемое представление было основано на единственной таблице и присутствие в числе полей представления первичного ключа физической таблицы не являются необходимыми. Скорее всего требование единственной таблицы является ошибкой перевода. Дело в том, что через представление, основанное на нескольких таблицах, может обновлять только одну таблицу за запрос, т.е. конструкция SET оператора UPDATE должна перечислять колонки только одной таблицы из определения представления. Кроме того, чтобы представление, основанное на нескольких таблицах, было обновляемым, таблицы в его определении должны быть объединены только с помощью INNER JOIN, а не OUTER JOIN или UNION.

Обновляемое представление может допускать добавление данных (INSERT), если все поля таблицы-источника, не присутствующие в представлении, имеют значения по умолчанию.

Для представлений, основанных на нескольких таблицах, операция добавления данных (INSERT) работает только в случае если происходит добавление в единственную реальную таблицу. Удаление данных (DELETE) для таких представлений не поддерживается.
При использовании в определении представления конструкции WITH [CASCADED | LOCAL] CHECK OPTION все добавляемые или изменяемые строки будут проверяться на соответствие определению представления.

· Изменение данных (UPDATE) будет происходить только если строка с новыми значениями удовлетворяет условию WHERE в определении представления.

· Добавление данных (INSERT) будет происходить только если новая строка удовлетворяет условию WHERE в определении представления.

Иными словами, нельзя добавить или изменить данные в представлении таким образом, чтобы они не были доступны через представление.

Ключевые слова CASCADED и LOCAL определяют глубину проверки для представлений основанных на других представлениях:

· Для LOCAL происходит проверка условия WHERE только в собственном определении представления.

· Для CASCADED происходит проверка для всех представлений на которых основанно данное представление. Значением по умолчанию является CASCADED.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-27; просмотров: 132; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.197.26 (0.006 с.)