Lệnh Drop Trigger trong MySQL
Trong bài viết này bạn sẽ được học cách sử dụng lệnh DROP TRIGGER trong MySQL, lệnh này dùng để xóa một trigger đã tạo nhưng không muốn sử dụng nữa.
1. Cú pháp lệnh Drop Trigger
Lệnh Drop Trigger
khá đơn giản, bạn chỉ việc sử dụng theo cú pháp sau:
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name;
Trong đó trigger_name
chính là tên trigger mà bạn đã tạo. schema_name
chính là schema mà trigger này thuộc về, mặc định nó là schema hiện tai mà bạn đang kết nối.
Lệnh IF EXISTS
sẽ giúp việc xóa trigger được an toàn hơn, nghĩa là nó chỉ xóa chỉ khi nào trigger đó tồn tại. Nếu bạn không có dòng này thì sẽ xuất hiện lỗi trong trường hợp không có trigger nào tên là trigger_name
.
Bài viết này được đăng tại [free tuts .net]
Bạn phải lưu ý rằng một khi đã xóa trigger thì nó sẽ mất vĩnh viễn, ko còn việc gọi tự động nào kể từ lúc đó về sau.
2. Ví dụ xóa trigger với lệnh Drop Trigger
Chúng ta sẽ làm một bài tập thực hành. Trước tiên hãy tạo một table có tên là billings
với cấu trúc như lệnh SQL sau:
CREATE TABLE billings ( billingNo INT AUTO_INCREMENT, customerNo INT, billingDate DATE, amount DEC(10 , 2 ), PRIMARY KEY (billingNo) );
Tiếp theo tạo một trigger có tên là BEFORE UPDATE
và gán vào table billings
.
DELIMITER $$ CREATE TRIGGER before_billing_update BEFORE UPDATE ON billings FOR EACH ROW BEGIN IF new.amount > old.amount * 10 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New amount cannot be 10 times greater than the current amount.'; END IF; END$$ DELIMITER ;
Nếu bạn không biết dòng DELIMITER
là gì thì hãy đọc lại kiến thức Store Procedure.
Trigger sẽ được kích hoạt trước khi chạy lệnh update. Nội dung của nó là hiển thị lỗi nếu giá mới lớn hơn gấp 10 lần giá cũ.
Tiếp theo hãy dùng lệnh SHOW TRIGGERS;
để xem tồn tại không nhé.
SHOW TRIGGERS;
Bây giờ hãy chạy lệnh Drop trigger xem thế nào nhé.
DROP TRIGGER before_billing_update
Chạy lại lệnh SHOW TRIGGERS;
để xem có gì khác biệt không.
SHOW TRIGGERS;
Và kết quả là nó đã bị xóa ra khỏi database.
Như vậy trong bài này mình đã hướng dẫn xong cách sử dụng lệnh DROP TRIGGER để xóa một trigger bất kì trong MySQL. Chúc bạn thực hiện thành công!