Как и мы, вы возможно также являетесь пользователем MySQL. Поздравляю, вы выбрали самую лучшую и популярную в мире базу данных с открытым исходным кодом. Теперь нет необходимости беспокоиться о вашем языке программирования или фреймворке, потому что MySQL предлагает разработчикам приложений все необходимое для создания информационных систем, управляемых базами данных. Сегодня мы расскажем вам о всестороннем знании триггеров MySQL, которые также известны как триггеры SQL. Если вы технически подкованы и хотите получить подробную информацию о триггерах MySQL, то вы можете прочитать эту статью.
Триггеры MySQL – это объекты базы данных или хранимые программы, вызываемые автоматически при выполнении определенного действия, такого как INSERT, UPDATE или DELETE для связанной таблицы базы данных. Таким образом, если вы хотите запустить триггеры базы данных на MySQL, вам нужны привилегии суперпользователя. Если вы размещаете свой сайт на общем хостинге, то вы не можете запустить какой-либо триггер MySQL.
Было бы лучше иметь VPS (виртуальный частный сервер) или выделенный сервер, чтобы получить права суперпользователя для запуска триггеров в MySQL.
В основном существуют два типа SQL-триггеров: триггеры уровня строк и триггеры уровня операторов.
Триггер уровня строки: он активируется или выполняется всякий раз, когда вам нужно вставить, обновить или удалить событие для каждой строки. Например, если вы хотите удалить 50 строк, то триггер базы данных должен быть вызван автоматически 50 раз для затронутых 50 строк.
Триггер уровня оператора: как следует из названия, он выполняется один раз для каждой транзакции базы данных вместо того, сколько строк обновляется, удаляется или вставляется.
MySQL не поддерживает триггеры SQL уровня операторов и выполняет только триггеры уровня строк.
CREATE TRIGGER [schema_name.]trigger_name ON table_name {FOR | AFTER | INSTEAD OF} {[INSERT] [,] [UPDATE] [,] [DELETE]} AS {sql_statements}
То, что вы должны сделать, это? Определите набор инструкций SQL, которые вы хотите выполнить при срабатывании триггера. Теперь укажите, когда будет выполнен триггер, и он задается разделом {FOR | AFTER | INSTEAD OF}. Параметры INSERT, UPDATE, DELETE указывают, какие команды SQL запускают этот триггер.
Если вы хотите удалить триггер MySQL, то выполните следующую команду:
DROP TRIGGER [schema_name.]trigger_name;
Пример Триггера MySQL:
mysql> CREATE TABLE student (age INT, name varchar(150));
mysql>> delimiter // mysql> CREATE TRIGGER agecheck BEFORE INSERT ON student FOR EACH ROW IF NEW.age < 0 THEN SET NEW.age = 0; END IF;// Query OK, 0rows affected (0,00 sec) mysql>> delimiter ;
INSERT INTO student VALUES (-10, 'andreyex'), (20, 'destroyer'), (30, 'alex');
SELECT * FROM student;
+————+———————————+ |age | name | +————+———————————+ | 0 | andreyex | | 20 | destroyer | | 30 | alex | +————+———————————+