06/04/2021, 14:50

Lệnh Drop Trigger trong MySQL - MySQL nâng cao

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 ...

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ạ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;

MySQL DROP TRIGGER example png

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.

MySQL DROP TRIGGER example after removal png

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!

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0