15.2.QUẢN LÝ TRIGGER

Một phần của tài liệu Oracle PL SQL cơ bản (Trang 102 - 105)

- 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; (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Oracle PL SQL cơ bản (Trang 102 - 105)