Trong bài viết này, bạn sẽ học cách sử dụng mệnh đề WHEN trong trình kích hoạt Oracle để kích hoạt trình kích hoạt theo điều kiện đã chỉ định. Dưới đây là một ví dụ.
Bạn có thể kiểm tra ví dụ về trình kích hoạt này bằng cách tạo bảng sau và kích hoạt trong lược đồ cơ sở dữ liệu Oracle của bạn.
Tạo bảng
CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10 BYTE), JOB VARCHAR2(9 BYTE), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) /
Tạo trình kích hoạt cơ sở dữ liệu Oracle với mệnh đề WHEN
Trình kích hoạt sau sẽ chỉ kích hoạt khi JOB bằng CLERK và nếu đúng như vậy, thì nó sẽ đặt cột COMM (hoa hồng) thành 0.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Kiểm tra
Câu lệnh chèn dưới đây cho bảng EMP sẽ cố gắng chèn một bản ghi cho CLERK với hoa hồng 300.
SET DEFINE OFF; Insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) Values (7499, 'ALLEN', 'CLERK', 7698, TO_DATE('02/20/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1600, 300, 30); COMMIT;
Truy vấn Bảng
Bây giờ, hãy truy vấn bảng EMP để biết bản ghi đã chèn ở trên và bạn sẽ thấy rằng giá trị cột COMM là 0 .
SELECT * FROM EMP WHERE EMPNO = 7499;
Xem thêm:
- Tìm hiểu cách tạo trình kích hoạt trong Oracle SQL Developer
- Tạo trình kích hoạt trong ví dụ về biểu mẫu Oracle