15.2.QUẢN LÝ TRIGGER

Một phần của tài liệu SQL và PL/SQL Cơ bản docx (Trang 103 - 106)

- 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

Một phần của tài liệu SQL và PL/SQL Cơ bản docx (Trang 103 - 106)

Tải bản đầy đủ (PDF)

(106 trang)