--触发器:指定一个规则,在我们做crud操作的时候自动触发,无需调用 --语句触发器 ,不包含for each row --行级触发器:包含for each row 得就是行级触发器 --加 for each row 是为了使用:old 或者:new对象
--两种触发器 --语句级触发器
--插入一条记录,输出一个新员工入职 create or replace trigger t1 after insert on person declare
begin dbms_output.put_line(‘新员工入职‘); end;
--触发t1 insert into person values (1,‘小红‘); commit;
select * from person;
--行级触发器 --不能给员工降薪 create or replace trigger t2 before update on emp for each row declare
begin if :old.sal > :new.sal then raise_application_error(-20001,‘不能给员工降薪‘); end if; end;
--测试触发器 update emp set sal = sal -1 where empno=7788; --查询 select * from emp where empno=7788;
--触发器实现主键自增 --分析:在用户插入之前,拿到即将插入的数据 --给该数据的主键赋值 create or replace trigger suid before insert on person for each row declare begin select s_person.nextval into :new.pid from dual;
end; select * from person;
--使用触发器实现主键自增 insert into person(pname) values (‘a‘); commit;
--oracle 10g ojdbc14.jar---oracle 11g ojdbc
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|