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

Thả kích hoạt nếu tồn tại trong MySQL?


Để thả trình kích hoạt, hãy sử dụng lệnh DROP. Cú pháp như sau -

DROP TRIGGER IF EXISTS yourTriggerName;

Để hiểu cú pháp trên, bạn cần có một trình kích hoạt trong cơ sở dữ liệu hiện tại của mình.

Để kiểm tra trình kích hoạt có hiện diện hay không, bạn có thể sử dụng truy vấn bên dưới. Chúng tôi có một trình kích hoạt trong cơ sở dữ liệu của mình -

mysql> show triggers;

Sau đây là kết quả -

+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| Trigger     | Event   | Table        | Statement                                                              | Timing |Created                 | sql_mode                                   |  Definer                 | character_set_client | collation_connection | Database Collation |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| CheckSalary | INSERT | employeetable | if new.EmployeeSalary < 1000 then setnew.EmployeeSalary = 10000;end if | BEFORE | 2018-12-31 17:33:29.54 |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | utf8 |utf8_general_ci | utf8mb4_0900_ai_ci |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.17 sec)

Ở đây, chúng tôi có trình kích hoạt với tên ‘CheckSalary’ trên Employeetable. Thả trình kích hoạt ‘CheckSalary’ bằng lệnh DROP. Truy vấn như sau -

mysql> drop trigger if exists CheckSalary;
Query OK, 0 rows affected (0.30 sec)

Sử dụng lệnh trình kích hoạt để kiểm tra xem trình kích hoạt có hiện diện hay không. Truy vấn như sau -

mysql> show triggers;
Empty set (0.00 sec)

Nhìn vào kết quả ở trên ngay bây giờ, trình kích hoạt không có trong cơ sở dữ liệu ‘kiểm tra’. Chúng tôi đã xóa nó bằng drop.