Рис. 14.2.2. Создание триггера update_test.
Теперь посмотрим на работу триггера. Для этого запишем данные в таблицу.
Рис. 14.2.3. Запись данных в таблицу.
Выборкой увидим записанные данные. Но мы не заполняли таблицу log. Она должна была быть заполнена триггером.
Рис. 14.2.4. Вывод данных таблицы “test”.
Проверим таблицу log. В результате можно увидеть что, каждый ввод будет регистрироваться в этой таблице.
Рис. 14.2.5. Проверка таблицу log.
Точно также можно вести лог файл удаления записей, что может быть очень полезным.
Рассмотрим ещё один пример триггера на BEFORE INSERT. Для этого создадим таблицу user, в которой будут записана информация о пользователях системы, их пароли и логины.
Рис. 14.2.6. Создание таблицы user.
Создадим для этой таблицы триггер, где будем изменять данные после того как они будут записаны в таблицу.
Как можно увидеть триггер получает данные и изменяет их. Здесь используется set для установления нового значения и стандартные функции. Как бонус видим использование функции md5(), которая шифрует пароль.
Рис. 14.2.7. Cоздание тригера для таблицы user.
Теперь после ввода данных запускается триггер и мы можем увидеть результат в таблице user.
Рис. 14.2.8. Ввод данных и запуск тригера.
Как можно увидеть и понять триггер изменил данные и переписал в таблице.
Чтобы увидеть информацию в базе данных можно написать следующий запрос:
Show triggers;
Это выдаст в результате таблицу с 22 столбцами (версия выше MySQL 5.0):
TRIGGER_CATALOG
TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED
SQL_MODE
DEFINER
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION
Чтобы упростить можно выбрать несколько столбцов из этого списка.
Рис.14.2.9. Выбор столбцов из списка системной таблицы.
Здесь можно увидеть information_schema, через которую можно увидеть информацию о триггерах по частям.
Do'stlaringiz bilan baham: |