- Thay DEPTNO của các nhân viên này bằng DEPTNO của Boston Thay lương mỗi nhân viên bằng lương trung bình của bộ phậ n * 1.1 Thay commission c ủ a
15.2.QUẢN LÝ TRIGGER
15.2.1. Phân biệt database trigger
Trigger và thủ tục
Trigger Thủ tục
Lệnh tạo CREATE TRIGGER Lệnh tạo CREATE PROCEDURE Lưu giữ trong Từ điển dữ liệu dưới dạng Lưu giữ trong Từ điển dữ liệu dưới dạng mã nguồn và dạng p-code mã nguồn và dạng p-code
Được gọi ngầm định Thực hiện theo lời gọi tường minh
Không cho phép dùng: COMMIT, Cho phép dùng: COMMIT, ROLLBACK, ROLLBACK, SAVEPOINT SAVEPOINT.
Database Trigger và Form Trigger Database Trigger Được thực hiện khi có tác động lên database do ứng dụng hoặc do chính các công cụ của Oracle
Được kích hoạt bởi các lệnh SQL
Phân biệt hai loại trigger trên câu lệnh và trên dòng dữ liệu
Tuỳ theo lỗi xảy ra, trigger có thể gây ra rollback câu lệnh
Form Trigger
Được thực hiện chỉ bởi các tác động ngay trên ứng dụng
Được kích bởi các sự kiện trên ứng dụng Không phân biệt
Tuỳ theo lỗi xảy ra, có thể rollback toàn bộ giao dịch
Database Trigger được kích hoạt độc lập với các Form Trigger 15.2.2. Thay đổi trạng thái của database trigger
Cho phép/ không cho phép kích hoạt một databse trigger Cú pháp:
ALTER TRIGGER trigger_name DISABLE | ENABLE; Với:
trigger_name Tên trigger; Ví dụ:
-- Cho phép trigger được hoạt động ALTER TRIGGER check_sal ENABLE;
Cho phép/ không cho phép kích hoạt tất cả các databse trigger của một bảng Cú pháp:
ALTER TABLE table_name DISABLE | ENABLE ALL TRIGGERS; Với:
table_name Tên bảng;
Ví dụ:
-- Không cho phép các trigger ứng với bảng emp được hoạt động ALTER TABLE emp DISABLE ALL TRIGGERS;
Biên dịch lại databse trigger Cú pháp:
ALTER TRIGGER trigger_name COMPILE; Ví dụ:
-- Biên dịch lại trigger check_sal sau khi sửa đổi nội dung ALTER TRIGGER check_sal COMPILE;
15.2.3. Huỷ bỏ trigger
Sử dụng câu lệnh SQL để huỷ bỏ trigger.
Oracle cơ bản - SQL và PL/SQL Cú pháp:
DROP TRIGGER trigger_name; Ví dụ:
DROP TRIGGER check_sal; 15.2.4. Lưu ý khi sử dụng trigger
Các trường hợp kiểm tra trigger
Kiểm tra trigger đúng với thao tác dữ liệu như dự định.
Kiểm tra thực hiện trigger theo đúng như mệnh đề When. Kiểm tra ảnh hưởng của trigger đối với các trigger khác. Kiểm tra ảnh hưởng của các trigger khác đối với trigger đang xem xét.
Thứ tự thực hiện trigger và các kiểm tra ràng buộc:
1. Thực hiện trigger BEFORE STATMENT
2. Lặp trên nhiều dòng dữ liệu
a. Thực hiện trigger BEFORE ROW
b. Thực hiện câu lệnh thao tác dữ liệu và kiểm tra toàn vẹn dữ liệu trên dòng dữ liệu xem xét
c. Thực hiện trigger AFTER ROW
3. Thực hiện các phép kiểm tra ràng buộc
4. Thực hiện trigger AFTER STATMENT.
Các quy tắc ràng buộc đối với trigger:
1. Không được phép sửa đổi dữ liệu trong cột dữ liệu có ràng buộc thuộc loại khoá chính (primary key), khoá ngoài (foreign key) hay duy nhất.
2. Không cho phép đọc dữ liệu từ các bảng đang thao tác.
PHỤ LỤC