Tự động hoá (automation) là điều ai cũng muốn thực hiện cho bất kỳ vấn đề gì, kể cả các vấn đề ở Database (DB). Thì ở phần kiến thức hôm nay, TRIGGER sẽ thể hiện được tính chất này.
1. TRIGGER trong SQL là gì?
Cũng giống như hàm trong các ngôn ngữ, là tập hợp các câu lệnh SQL để xử lý cho một nghiệp vụ nào đó.
2. Mục đích sử dụng TRIGGER
- Hàm tự động chạy khi có một sự kiện xảy ra trên table.
- Các sự kiện đó chính là: INSERT, UPDATE, DELETE.
3. Hướng dẫn cách sử dụng TRIGGER
3.1. Tạo TRIGGER
Cú pháp
CREATE TRIGGER trigger_name
(AFTER | BEFORE) (INSERT | UPDATE | DELETE)
ON table_name FOR EACH ROW
BEGIN
--variable declarations
--trigger code
END;
Ví dụ
delimiter //
CREATE TRIGGER auto_create_account_for_doctor
AFTER INSERT
ON doctor FOR EACH ROW
BEGIN
INSERT INTO account_system (`account`, `password`, doctor_id)
VALUES (CONCAT('doctor', NEW.doctor_id), '12345678', NEW.doctor_id);
END //
delimiter ;
Với TRIGGER bên trên, nó sẽ tự động tạo ra tài khoản của bác sĩ dựa trên thông tin của bác sĩ mới được thêm vào table doctor, tài khoản sẽ có định dạng là “doctor[doctor_id]”, mật khẩu là “12345678”. Còn về từ khoá NEW, hãy tiếp tục theo dõi ở mục bên dưới.
3.2. Xoá TRIGGER
Cú pháp
DROP TRIGGER trigger_name
Ví dụ
Thự hiện xoá TRIGGER đã tạo ở bên trên
DROP TRIGGER auto_create_account_for_doctor
4. Một số keyword cần lưu ý
Ở cú pháp và ví dụ bên trên, có một số từ khoá các bạn cần phải hiểu thì mới có thể sử dụng TRIGGER dễ dàng:
- INSTEAD OF
Hoạt động thay thế cho sự kiện.
- BEFORE
Hoạt động trước khi xảy ra sự kiện.
- AFTER
Hoạt động sau khi xảy ra sự kiện.
- OLD
Thể hiện cho record vừa DELETE hoặc dữ liệu cũ trước khi UPDATE.
- NEW
Thể hiện cho record vừa INSERT hoặc dữ liệu mới sau khi UPDATE.
Kết luận
Phần chia sẻ hôm nay của mình thì chỉ đến đây thôi, với TRIGGER thì nó sẽ giúp cho bạn tạo ra những đoạn chương trình tự hoạt động để giải quyết công việc cụ thể, còn ngược lại nếu cần phải gọi mới hoạt động thì bạn nên sử dụng FUNCTION hay STORED PROCEDURE.