6.4.5: Имеется ли способ просмотреть все триггеры в конкретной базе данных?
Да. Вы можете получать распечатку всех триггеров, определенных в базе данных dbname, запросом к таблице INFORMATION_SCHEMA.TRIGGERS примерно так:
SELECT TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_TABLE,
ACTION_STATEMENT FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA=' dbname ';
Вы можете также использовать инструкцию SHOW TRIGGERS, которая является специфической для MySQL.
6.4.6: Где хранятся триггеры?
Триггеры в настоящее время сохранены в .TRG-файлах, один такой файл на таблицу. Другими словами, триггер принадлежит таблице.
В будущем, мы планируем изменять это так, чтобы информация триггера включалась в .FRM-файл, который определяет структуру таблицы. Также планируется сделать триггеры уровня базы данных, чтобы привести их в согласие с SQL-стандартом.
6.4.7: Может триггер вызывать сохраненную процедуру?
Да.
6.4.8: Может триггер обращаться к таблицам?
Триггер может обращаться к старым и новым данным в собственной таблице. Через сохраненную процедуру, многотабличную модификацию или инструкцию удаления триггер может также воздействовать и на другие таблицы.
6.4.9: Может триггер вызывать внешнюю прикладную программу через UDF?
Нет, не в настоящее время.
6.4.10: Может триггер модифицировать таблицы на удаленном сервере?
Да. Таблица на удаленном сервере могла бы модифицироваться, используя тип памяти FEDERATED.
Views (включая обновляемые views) выполнены в MySQL Server 5.0. Views доступны в двоичных выпусках 5.0.1 и выше.
Эта глава обсуждает следующие темы:
Создание или изменение views через CREATE VIEW или ALTER VIEW
Удаление views командой DROP VIEW
Обсуждение ограничений на использование views дано в разделе " 11.4. Ограничения на Views Алексей В. Паутов MySQL: руководство профессионала Введение Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием. Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо отмечены места, относящиеся к специфической версии пакета. Необходимо также отметить, что эти заметки логически продолжают книгу MySQL: Руководство администратора и ориентированы на ту же аудиторию. Данный материал подготовлен Паутовым Алексеем в рамках некоммерческого проекта RussianLDP:MySQL. При любом использовании ссылка на автора и проект обязательна!
".
Чтобы использовать views, если выполнен апгрейд до MySQL 5.0.1, Вы должны обновить таблицы предоставления привилегий, чтобы они содержали привилегии, связанные с view.
Метаданные относительно views могут быть получены из таблицы INFORMATION_SCHEMA.VIEWS или используя инструкцию SHOW CREATE VIEW.
7.1. Синтаксис ALTER VIEW
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER}]
[SQL SECURITY {DEFINER | INVOKER}]
VIEW view_name [( column_list )]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
Эта инструкция изменяет определение существующего view. Синтаксис для CREATE VIEW подобен этому. Эта инструкция требует привилегий CREATE VIEW и DROP для этого view, а также некоторой привилегии для каждого столбца, упоминаемого в инструкции SELECT.
Эта инструкция была добавлена в MySQL 5.0.1. Предложения DEFINER и SQL SECURITY могут использоваться с MySQL 5.0.16, чтобы определить контекст защиты, который нужно использовать при проверке привилегий доступа при вызове view. Подробности изложены в разделе " 7.2. Синтаксис CREATE VIEW Алексей В. Паутов MySQL: руководство профессионала Введение Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием. Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо отмечены места, относящиеся к специфической версии пакета. Необходимо также отметить, что эти заметки логически продолжают книгу MySQL: Руководство администратора и ориентированы на ту же аудиторию. Данный материал подготовлен Паутовым Алексеем в рамках некоммерческого проекта RussianLDP:MySQL. При любом использовании ссылка на автора и проект обязательна!
".
7.2. Синтаксис CREATE VIEW
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER}]
[SQL SECURITY {DEFINER | INVOKER}]
VIEW view_name [( column_list )]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
Эта инструкция создает новый view или заменяет существующий, если дано предложение OR REPLACE. Инструкция SELECT select_statement обеспечивает определение view. Инструкция может выбирать из основных таблиц или других views.
Читать дальше