Trigger cũng sẽ bị xóa nếu xóa bảng gắn với nó. Đây gọi là xóa trigger ngầm (implicit destroy). Ví dụ:
Ví dụ
Giả sử có trigger trigger_before_delete_sample trên bảng Sample. Xóa bảng này thì trigger cũng bị xóa.
mysql> Show Triggers\G *************************** 1. row *************************** Trigger: trigger_before_delete_sample Event: DELETE Table: sample Statement: BEGIN SET @count = if (@count IS NULL, 1, (@count+1)); INSERT INTO sample_rowaffected values (@count); END Timing: BEFORE Created: 2017-11-21 12:31:58.70 ... *************************** 2. row *************************** Trigger: before_inser_studentage Event: INSERT Table: student_age Statement: IF NEW.age < 0 THEN SET NEW.age = 0; END IF Timing: BEFORE Created: 2017-11-21 11:26:15.34 ... 2 rows in set (0.01 sec)
Xóa bảng sample:
mysql> DROP table sample; Query OK, 0 rows affected (0.26 sec)
Kiểm tra lại trigger:
mysql> Show Triggers\G *************************** 1. row *************************** Trigger: before_inser_studentage Event: INSERT Table: student_age Statement: IF NEW.age < 0 THEN SET NEW.age = 0; END IF Timing: BEFORE Created: 2017-11-21 11:26:15.34 ... 1 row in set (0.01 sec)
Trigger gắn với sample đã bị xóa theo.