관련 테이블을 파괴하면 트리거도 파괴됩니다. 이를 트리거의 명시적 소멸이라고 합니다. 예를 들어 이해할 수 있습니다 -
"Sample"이라는 테이블에 "trigger_before_delete_sample"이라는 트리거가 있다고 가정합니다. 이제 테이블을 삭제하면 해당 테이블과 연결된 위의 트리거도 삭제됩니다.
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 sql_mode: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION Definer: root@localhost character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: latin1_swedish_ci *************************** 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 sql_mode: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION Definer: root@localhost character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: latin1_swedish_ci 2 rows in set (0.01 sec)
위 결과 집합은 데이터베이스에 두 개의 트리거가 있음을 보여 주며 그 중 하나는 "Sample"이라는 테이블과 연결되어 있습니다. 이제 다음 문을 사용하여 테이블을 삭제합니다. -
mysql> DROP table sample; Query OK, 0 rows affected (0.26 sec)
이제 다음 문을 사용하여 "Sample"이라는 테이블과 연결된 트리거도 삭제되는 것을 볼 수 있습니다.
rreee위 내용은 해당 트리거가 있는 테이블을 삭제하면 트리거는 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!