在处理表或行数据时,oracle提供的触发器,可以对其他表进行DML操作。
创建触发器的一般语法是:
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name;
我在项目中的实际应用是这样:
对表中的一行数据中的一个值进行update时,做为触发条件,修改另外一张表的数据,如下所示:
CREATE OR REPLACE TRIGGER "ATMS48SE"."UPDATE_GQTS"
AFTER UPDATE OF value
ON t_sys_login_config
FOR EACH ROW
WHEN (old.id='1002') --当id='1002' 并update value列的时候才会触发此触发器
BEGIN
IF UPDATING('value') THEN
UPDATE T_SYS_USER SET GQTS= :old.value where gqtslx='0';
END IF;
END;
以上是我的一点小小学习心得,可以交流。