資料庫觸發器是與資料庫中某個資料表、視圖或事件相關聯的儲存子程式。舉一個例子,我們可以讓Oracle資料庫在INSERT、UPDATE或DELETE運算式影響一個表之前或之後來自動啟用一個觸發器。觸發器的用途之一就是審核心數據修改。例如,下面的表級(table-level)觸發器會在emp表的salaries欄位更新後被啟用。
CREATE TRIGGER audit_sal
AFTER UPDATE OF sal
ON emp
FOR EACH ROW
BEGIN
INSERT INTO emp_audit
VALUES ...
END;
************執行個體!!!!!******************
1。先建立emp_audit表:
create table emp_audit(information varchar2(50), update_today date);
2。如果沒有emp表,請建立emp表:
create table emp(
EMPNO NUMBER(4) primary key,
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2));
並插入資料:
insert into emp values(7368, 'SMITH1', 'CLERK', 7902, sysdate, 13.00,null,20);
3。建立觸發器:
CREATE TRIGGER audit_sal
AFTER UPDATE OF sal
ON emp
FOR EACH ROW
BEGIN
INSERT INTO emp_audit
VALUES('successful',sysdate);
END;
******************************
1。執行更新emp操作:update emp set sal=1300 where empno=7368;
2。查看emp更新後的資料:select * from emp;
3。 查看emp_audit的資料:select * from emp_audit;