Oracle Trigger(转自网络)
2006-08-02 16:04
429 查看
1. trigger 是自动提交的,不用COMMIT,ROLLBACK
2. trigger最大为32K,如果有复杂的应用可以通过在TRIGGER里调用PROCEDURE或FUNCTION来实现。
3. 语法CREATE OR REPLACE TRIGGER <trigger_name>
<BEFORE | AFTER> <ACTION>
ON <table_name>
DECLARE
<variable definitions>
BEGIN
<trigger_code>
EXCEPTION
<exception clauses>
END <trigger_name>;
/
4. 相关命令
create trigger
create any trigger
administer database trigger
alter any trigger
drop any trigger
5. 对列做触发(of)(行的触发是最常见的,不在这里列出
1 create or replace trigger tri_wwm
2 before update of id on wwm2 for each row
3 declare the_str VARCHAR2(40):='update on wwm2''s id column';
4 begin
5 dbms_output.put_line(the_str);
6* end tri_wwm;
SQL> /
Trigger created.
SQL> update wwm2 set id=3;
update on wwm2's id column
1 row updated.
6. Referencing 别名
测试数据
SQL> select * from wwm2;
ID NAME
---------- ----------
1 wwm
2 china
建测试用日志表
1 create table wwm_log
2 (o_id number(8),o_name varchar2(10),
3 n_id number(8),n_name varchar2(10),
4* op_by varchar2(20),op_date date)
SQL> /
Table created.
建立 触发器
create or replace trigger tri_refer
after update of id on wwm2 referencing new as new old as old for each row
begin
insert into wwm_log values (:old.id,:old.name,:new.id,:new.name,sysdate,user);
end;
/
更新表以触发事件
SQL> update wwm2 set id=8 where id=2;
update on wwm2's id column
1 row updated.
SQL> select * from wwm_log;
O_ID O_NAME N_ID N_NAME OP_DATE OP_USER
---------- ---------- ---------- ---------- --------- -----------------
2 china 8 china 09-MAR-06 SYSTEM
大家可以用这个方法来对一些操作做日志
7.Disable/Enable
ALTER TRIGGER tri_refer DISABLE/ENABLE
ALTER TABLE wwm2 DISABLE/ENABLE ALL TRIGGERS;
ALTER TRIGGER tri_refer RENAME TO tri_reference;
2. trigger最大为32K,如果有复杂的应用可以通过在TRIGGER里调用PROCEDURE或FUNCTION来实现。
3. 语法CREATE OR REPLACE TRIGGER <trigger_name>
<BEFORE | AFTER> <ACTION>
ON <table_name>
DECLARE
<variable definitions>
BEGIN
<trigger_code>
EXCEPTION
<exception clauses>
END <trigger_name>;
/
4. 相关命令
create trigger
create any trigger
administer database trigger
alter any trigger
drop any trigger
5. 对列做触发(of)(行的触发是最常见的,不在这里列出
1 create or replace trigger tri_wwm
2 before update of id on wwm2 for each row
3 declare the_str VARCHAR2(40):='update on wwm2''s id column';
4 begin
5 dbms_output.put_line(the_str);
6* end tri_wwm;
SQL> /
Trigger created.
SQL> update wwm2 set id=3;
update on wwm2's id column
1 row updated.
6. Referencing 别名
测试数据
SQL> select * from wwm2;
ID NAME
---------- ----------
1 wwm
2 china
建测试用日志表
1 create table wwm_log
2 (o_id number(8),o_name varchar2(10),
3 n_id number(8),n_name varchar2(10),
4* op_by varchar2(20),op_date date)
SQL> /
Table created.
建立 触发器
create or replace trigger tri_refer
after update of id on wwm2 referencing new as new old as old for each row
begin
insert into wwm_log values (:old.id,:old.name,:new.id,:new.name,sysdate,user);
end;
/
更新表以触发事件
SQL> update wwm2 set id=8 where id=2;
update on wwm2's id column
1 row updated.
SQL> select * from wwm_log;
O_ID O_NAME N_ID N_NAME OP_DATE OP_USER
---------- ---------- ---------- ---------- --------- -----------------
2 china 8 china 09-MAR-06 SYSTEM
大家可以用这个方法来对一些操作做日志
7.Disable/Enable
ALTER TRIGGER tri_refer DISABLE/ENABLE
ALTER TABLE wwm2 DISABLE/ENABLE ALL TRIGGERS;
ALTER TRIGGER tri_refer RENAME TO tri_reference;
相关文章推荐
- oracle 10g 检查网络配置需求未通过问题的解决
- Oracle网络服务与网络管理
- oracle的网络结构和客户连接
- 从Oracle网络结构解决连接问题
- Oracle中利用Trigger进行工作
- Oracle 网络配置与管理
- 连接网络上的oracle服务器的主机字符串
- Oracle创建和删除ACL(网络访问控制列表 )
- Oracle网络相关等待事件(转)
- 【Oracle学习】之 触发器(Trigger)
- Oracle trigger详解
- Linux开放1521端口允许网络连接Oracle Listene
- 安装Oracle 10g的“正在检查网络配置需求...未执行”问题
- NBU网络备份大全之oracle系统热备份
- 用oracle的trigger生成主键的时候和hibernate冲突的讨论(转)
- oracle系统冷备份---NBU网络备份大全
- oracle 网络管理
- Define Custom Data Filter Using Pre-Query Trigger In Oracle Forms
- Oracle学习.Oracle数据库体系结构&网络结构简述
- 安装Oracle 10g 的正在检查网络配置需求...未执行