"景先生毕设|www.jxszl.com

oracle触发器举例

2023-09-12 15:40编辑: www.jxszl.com景先生毕设
                                 oracle触发器举例
1.说明
触发器是一种特殊的存储过程,触发器一般由事件触发并且不能接受参数,存储器由语句块去调用
语法 :
CREATE [OR REPLACE] TRIGGER trigger_name
INSTEAD OF
{INSERT|DELETE|UPDATE [OF COLUMN...]}
[OR {INSERT| DELETE| UPDATE [OF COLUMN...]}]
ON VIEW_NAME
[REFFERENCING{OLD [AS] OLD | NEW [AS] NEW| PARENT AS PARENT}]   // 可以指定相关名称,当前的默认相关名称为OLD和NEW,
                                       应用相关名称时需要加:
[FOR EACH ROW]                     //instead of 触发器只能在行级上触发,因为没有必要指定
[WHEN CONDITION]
DECLARE
BEGIN
END;
 
举例:  删除表Test1220 数据  通过触发器  插入到Test1220_bak 表
create table   Test1220
(
deptno  varchar(10),
total_employeer  varchar(10),
total_salary  varchar(10)
);
 
create table   Test1220_bak
(
deptno  varchar(10),
total_employeer  varchar(10),
total_salary  varchar(10)
);
insert  into   Test1220   values('1','2','122');
insert  into   Test1220   values('10','2','122');
CREATE OR REPLACE TRIGGER Test1220_delete
  AFTER delete ON Test1220
  FOR EACH ROW
begin
     insert into  Test1220_bak values(:old.deptno,:old.total_employeer,:old.total_salary);
  end  Test1220_delete;
 
  delete   Test1220 where deptno ='10'
 

原文链接:http://www.jxszl.com/biancheng/shujuku/445483.html