Quản trị trigger trong Oracle Database bao gồm việc tạo, sửa đổi và xóa các trigger. Trigger là các đối tượng cơ sở dữ liệu được kích hoạt tự động khi có sự kiện xảy ra trong cơ sở dữ liệu, như INSERT, UPDATE hoặc DELETE trên một bảng cụ thể. Trigger thường được sử dụng để thực hiện các hành động phụ trợ, như kiểm tra dữ liệu, cập nhật thông tin, hoặc ghi log.
Tạo Trigger
Trong Oracle, trigger được tạo bằng lệnh CREATE TRIGGER.
Cú pháp
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE | {INSERT | UPDATE | DELETE}}
ON table_name
[FOR EACH ROW]
DECLARE
— Khai báo biến
BEGIN
— Câu lệnh thực thi
EXCEPTION
— Xử lý ngoại lệ
END trigger_name;
Ví dụ
Dưới đây là một ví dụ về việc tạo trigger để ghi log mỗi khi có bản ghi được thêm vào bảng orders:
CREATE OR REPLACE TRIGGER log_order_insert
AFTER INSERT ON orders
FOR EACH ROW
DECLARE
v_log_message VARCHAR2(100);
BEGIN
v_log_message := ‘New order inserted: ‘ || :NEW.order_id || ‘ – ‘ || :NEW.order_date;
INSERT INTO order_logs (log_message, log_date)
VALUES (v_log_message, SYSDATE);
EXCEPTION
WHEN OTHERS THEN
— Xử lý ngoại lệ
DBMS_OUTPUT.PUT_LINE(‘Error: ‘ || SQLERRM);
END log_order_insert;
Sửa Đổi Trigger
Để sửa đổi một trigger đã tồn tại, bạn có thể sử dụng lệnh CREATE OR REPLACE TRIGGER.
Ví dụ
CREATE OR REPLACE TRIGGER log_order_insert
AFTER INSERT ON orders
FOR EACH ROW
DECLARE
v_log_message VARCHAR2(100);
BEGIN
v_log_message := ‘New order inserted: ‘ || :NEW.order_id || ‘ – ‘ || :NEW.order_date;
INSERT INTO order_logs (log_message, log_date)
VALUES (v_log_message, SYSDATE);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘Error: ‘ || SQLERRM);
END log_order_insert;
Xóa Trigger
Để xóa một trigger, sử dụng lệnh DROP TRIGGER.
Ví dụ
DROP TRIGGER log_order_insert;
Quyền Truy Cập
Để tạo và sử dụng trigger, bạn cần quyền CREATE TRIGGER.
Cấp Quyền
GRANT CREATE TRIGGER TO user_name;
Sử Dụng Trigger
Trigger thường được sử dụng để thực hiện các hành động phụ trợ, như kiểm tra dữ liệu, cập nhật thông tin hoặc ghi log. Dưới đây là một số ví dụ về cách sử dụng trigger:
- Kiểm Tra Dữ Liệu Trước Khi Thêm: Trước khi thêm một bản ghi mới vào bảng, trigger có thể kiểm tra điều kiện và quyết định liệu hành động được phép thực hiện hay không.
- Cập Nhật Thông Tin Tương Ứng: Trigger có thể tự động cập nhật thông tin trong các bảng khác khi có thay đổi xảy ra.
- Ghi Log Sự Kiện: Trigger có thể ghi lại các sự kiện quan trọng, như thêm, sửa đổi hoặc xóa dữ liệu, vào một bảng log để phân tích sau này.