探究Oracle数据库的触发器类型(oracle触发器类型)
Oracle数据库的触发器是一种不断发展的特性,能够有效满足用户许多需求。触发器既可以保护数据免受有害更改,也可以实现基于时间的数据更新,实现某些操作后自动调用存储过程等。
Oracle 数据库中的触发器分为 DML 触发器和 System 触发器两种. DML 触发器是指当对数据库中的某些表进行INSERT,UPDATE,DELETE 操作时,特定的动作被触发。而 System 触发器则是在特定的时间点或在特定事件发生时自动触发指定的动作。
代码实例:
–Create DML Trigger
CREATE OR REPLACE TRIGGER salary_update
BEFORE INSERT OR UPDATE ON employees
FOR EACH ROW
BEGIN
IF INSERTING AND :NEW.salary >30000 THEN
raise_application_error(-20011,’Salary Cannot Exceed 30000′);
END IF;
IF UPDATING AND :NEW.salary >30000 THEN
raise_application_error(-20011,’Salary Cannot Exceed 30000′);
END IF;
END;
/
–Create System Trigger
CREATE OR REPLACE TRIGGER log_user_connect
AFTER
LOGON ON DATABASE
BEGIN
INSERT INTO audittable(username, logintime)
VALUES(USER,sysdate);
END;
/
总而言之,Oracle数据库的触发器的功能已经从早期的单纯的DML触发器发展到强大的System触发器,其能够满足用户多样的需求,有效地进行数据库操作。除了DML触发器外,System触发器也可以使用,进一步丰富了Oracle数据库的功能,有效地保护了用户数据,也可以实现按时执行特定动作等。