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

Làm cách nào chúng ta có thể kiểm tra danh sách tất cả các trình kích hoạt trong cơ sở dữ liệu?


Với sự trợ giúp của câu lệnh SHOW TRIGGERS, chúng ta có thể liệt kê tất cả các trình kích hoạt trong một cơ sở dữ liệu cụ thể. Nó có thể được minh họa với sự trợ giúp của ví dụ sau -

Ví dụ

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,ERR
OR_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,ERR
OR_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)

Tập hợp kết quả trên cung cấp danh sách các trình kích hoạt trong cơ sở dữ liệu hiện tại. Bây giờ, nếu chúng ta muốn lấy danh sách các trình kích hoạt trong một cơ sở dữ liệu cụ thể thì chúng ta có thể sử dụng câu lệnh sau -

mysql> Show Triggers from tutorials\G
Empty set (0.00 sec)

Tập hợp kết quả trên cho thấy rằng không có trình kích hoạt nào trong cơ sở dữ liệu có tên là 'hướng dẫn'.