Database trigger
什么是Database trigger?
数据库触发器是存储在数据字典中的一段代码,每当发生预定义的事件并满足预定义的条件时,它都会自动处理。
打个比方,我们想为所有工资超过100000的员工自动提高工作级别:
ON UPDATE OF EMPLOYEE.salary
IF :NEW.salary > 100000 THEN
IncreaseJobLevel(:NEW.enumber, :NEW.salary);
END IF;
例如,我们想实现一个数据安全规则,即工资不能在周末被修改。
ON UPDATE OF EMPLOYEE.salary
IF TO_CHAR(SYSDATE,'Day') IN ('Saturday', 'Sunday') THEN
RAISE_APPLICATION_ERROR(-20001, 'Salary cannot be updated over a weekend !');
END IF;
例如,我们想要强制一个一致性约束,即一个部门不能有超过100名员工:
ON INSERT INTO EMPLOYEE
SELECT