- 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.
Oracle cơ bản - SQL vă PL/SQL
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.
Oracle cơ bản - SQL vă PL/SQL
PHỤ LỤC