Computer >> Máy Tính >  >> Lập trình >> MySQL

Điều gì xảy ra với trình kích hoạt khi chúng ta bỏ bảng có trình kích hoạt đó?


Trình kích hoạt cũng sẽ bị hủy nếu chúng ta hủy bảng liên kết với nó. Nó được gọi là sự phá hủy rõ ràng của một trình kích hoạt. Nó có thể được hiểu với sự trợ giúp của một ví dụ -

Ví dụ

Giả sử chúng ta có một trình kích hoạt có tên là ‘trigger_before_delete_sample’ trên bảng có tên là ‘Sample’. Bây giờ nếu chúng ta xóa bảng này thì trình kích hoạt ở trên được liên kết với bảng này cũng sẽ bị xóa.

 mysql> Hiển thị các trình kích hoạt \ G *************************** 1. hàng *********** **************** Trigger:trigger_before_delete_sample Sự kiện:DELETE Table:sample Tuyên bố:BEGIN SET @count =if (@count IS NULL, 1, (@ count + 1)); CHÈN VÀO các giá trị sample_rowaffected (@count); KẾT THÚC Thời gian:TRƯỚC KHI Tạo: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_DIVER_Sự kết nối địa phương_UBND_VN @ colliner:root_có thể kết nối địa phương:root_SGROUP Đối chiếu cơ sở dữ liệu cp850_general_ci:latin1_swedish_ci *************************** 2. hàng *************** ************ Trigger:before_inser_studentage Sự kiện:INSERT Table:student_age Tuyên bố: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 Bộ xác định:root @ localhost character_set_client:cp850 collation_connection:cp850_general_ci Đối chiếu cơ sở dữ liệu:latin1_swedish_ci2 hàng trong bộ 

Tập hợp kết quả trên cho thấy có hai trình kích hoạt trong cơ sở dữ liệu trong số này có một trình kích hoạt được liên kết với một bảng có tên là ‘Mẫu’. Bây giờ với sự trợ giúp của câu lệnh sau, chúng ta sẽ DẶN DÒ bảng -

 mysql> Mẫu bảng DROP; Truy vấn OK, 0 hàng bị ảnh hưởng (0,26 giây) 

Bây giờ với sự trợ giúp của câu lệnh sau, chúng ta có thể thấy rằng trình kích hoạt được liên kết với bảng có tên 'Sample' cũng bị hủy.

 mysql> Hiển thị các trình kích hoạt \ G *************************** 1. hàng *********** **************** Kích hoạt:before_inser_studentage Sự kiện:INSERT Table:student_age Tuyên bố: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_SUBE_SUB_GIỚI THIỆU_GIỚI THIỆU_SẢN_PHỐI_GIỚI_THÔNG_GIỚI_THẤT_GIỚI_KHỐI