Triggerele MySQL sunt obiecte din baza de date care sunt asociate cu o tabela. Acestea sunt activate cand o actiune definita a fost executata in acea tabela. Aceste triggere pot fi executate cand rulati una din comenzile MySQL : INSERT, UPDATE, DELETE si pot fi folosite inaintea sau dupa executarea acestor comenzi.

In cazul in care doriti sa folositi triggere trebuie sa aveti drepturi de Superuser pe respectiva baza de date.



Mai jos gasiti un exemplu de trigger MySQL

1. cream o tabela unde va fi setat triggerul (utilizand SSH)
mysql> CREATE TABLE people (age INT, name varchar(150));


2. Definim trigger-ul, va fi executat dupa fiecare comanda de INSERT pentru oamenii din respectiva tabela

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. Inseram 2 inregistrari pentru a verificare daca trigger-ul functioneaza

mysql> INSERT INTO people VALUES (-20, ‘Sid’), (30, ‘Josh’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

4. Verificam rezultatele

mysql> SELECT * FROM people;
+——-+——-+
| age | name |
+——-+——-+
| 0 | Sid | | 30 | Josh |
+——-+——-+
2 rows in set (0.00 sec)
Răspunsul a fost util? 5 utilizatori au considerat informația utilă (5 Voturi)