Hệ quản trị CSDL MySQL - Trigger là gì?
Trigger là gì?
SQL Trigger là một hoặc một tập các câu lệnh SQL được lưu trữ trong CSDL và sẽ được kích hoạt bởi sự kiện mà nó theo dõi trên bảng dữ liệu. Sự kiện đó gắn liền với thao tác INSERT, UPDATE hay DELETE.
Đôi khi người ta xem trigger là một dạng đặc biệt của thủ tục thường trú nếu xét về mặt mã lệnh viết trong thân trigger.
Ưu điểm của trigger·
- Sử dụng trigger để kiểm tra tính toàn vẹn của csdl.
- Trigger có thể bắt lỗi logic nghiệp vụ (business logic) ở mức csdl.
- Có thể dùng trigger là một cách khác để thay thế việc thực hiện những công việc hẹn giờ theo lịch.
- Trigger rất hiệu quả khi được sử dụng để kiểm soát những thay đổi của dữ liệu trong bảng.
Nhược điểm của trigger
- Trigger chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này.
- Trigger hoạt động ngầm ở trong csdl, không hiển thị ở tầng giao diện. Do đó, khó chỉ ra được điều gì xảy ra ở tầng csdl.
- Trigger thực hiện các update lên bảng dữ liệu vì thế nó làm gia tăng lượng công việc lên csdl và làm cho hệ thống chạy chậm lại
Hoạt động của Trigger
/data_folder/database_name/table_name.trg
Đây là một file text thuần túy nên chúng ta có thể sử dụng bất cứ trình soạn thảo văn bản nào để chỉnh sửa.
- Một số giới hạn cần chú ý khi sử dụng trigger:
- Không thể gọi thủ tục thường trú từ trigger
- Không thể tạo ra trigger theo dõi bảng ảo hay bảng tạm
- Không thể sử dụng giao tác (transaction) trong trigger.
- Trigger không cho phép sử dụng lệnh RETURN.
- Sử dụng trigger sẽ làm ảnh hưởng đến bộ nhớ tạm danh cho lệnh truy vấn.
- Tất cả các trigger của csdl không được trùng tên.