Quais são os gatilhos do MySQL e como usá-los?
O gatilho do MySQL é um objeto de banco de dados associado a uma tabela. Ele será ativado quando uma ação definida for executada para a tabela. O gatilho pode ser executado quando executa uma das seguintes instruções do MySQL na tabela: INSERT, UPDATE e DELETE e pode ser invocada antes ou depois do evento.
Poderá encontrar explicações detalhadas sobre a funcionalidade e a sintaxe do gatilho neste artigo.
O principal requisito para executar esses Triggers do MySQL é ter privilégios de MySQL SUPERUSER.
Nos servidores oferecidos pela Bravulink, tais privilégios podem ser concedidos nas soluções de hospedagem em nuvem e dedicada. Conceder privilégios de SUPERUSER ao MySQL para um usuário hospedado em um servidor compartilhado não é possível devido a nossa configuração do servidor.
Aqui está um exemplo de um gatilho do MySQL:
Primeiro vamos criar a tabela para a qual o trigger será definido via SSH:
mysql> CREATE TABLE people (age INT, name varchar(150));
Em seguida, vamos definir o gatilho. Ele será executado antes de cada instrução INSERT para a tabela de pessoas:
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 ;
Vamos inserir dois registros para verificar a funcionalidade do gatilho.
mysql> INSERT INTO people VALUES (-20, ‘Sid’), (30, ‘Josh’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
No final, vamos verificar o resultado.
mysql> SELECT * FROM people;
+——-+——-+
| age | name |
+——-+——-+
| 0 | Sid |
| 30 | Josh |
+——-+——-+
2 rows in set (0.00 sec)