What are MySQL triggers and how to use them?
The MySQL trigger is a database object that is associated with a table. It will be activated when a defined action is executed for the table. Then, the trigger can be executed when you run one of the following MySQL statements on the table: INSERT, UPDATE and DELETE and it can be invoked before or after the event.
In addition, you can find detailed explanation of the trigger functionality and syntax in this article.
In fact, the main requirement for running such MySQL Triggers is having MySQL SUPERUSER privileges.
Here is an example of a MySQL trigger:
1. Firstly, we will create the table for which the trigger will be set via SSH.
mysql> CREATE TABLE people (age INT, name varchar(150));
2. Next we will define the trigger. It will be executed before every INSERT statement for the people table.
mysql> delimiter //mysql> CREATE TRIGGER agecheck BEFORE INSERT ON people FOR EACH ROW IF NEW.age < 0 THEN SET NEW.age = 0; END IF;// Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;
3. Then, we will insert two records to check the trigger functionality.
mysql> INSERT INTO people VALUES (-20, ‘Adam’), (30, ‘Mark’);Query OK, 2 rows affected (0.00 sec)Records: 2 Duplicates: 0 Warnings: 0
4. Lastly, we will check the result.
mysql> SELECT * FROM people;+——-+——-+| age | name |+——-+——-+| 0 | Adam || 30 | Mark |+——-+——-+2 rows in set (0.00 sec)