-
oracle触发器查看全部
-
创建A表的备份表 sql语句怎么写查看全部
-
触发器编写过程实例查看全部
-
触发器类型查看全部
-
创建触发器的基本语法查看全部
-
触发器运用场景查看全部
-
数据库 触发器 概念啊查看全部
-
触发器语法查看全部
-
触发器查看全部
-
create table emp_back as select * from emp; -- 触发器应用场景四:数据的备份和同步 -- 利用触发器实现数据的同步部分 -- 当给员工涨完工资后,子宫备份新的工资到备份表中 create or replace trigger sync_salary after update on emp for each row begin -- 当主表更新后,自动更新备份表 update emp_back set sal=:new.sal where empno=:new.empno; --empno=:old.empno; 因为empno没有变 end; /查看全部
-
-- 创建表,用于保存审计信息 create table audit_info ( information varchar2(200) ); create or replace trigger do_audit_emp_salary after update on emp for each row begin -- 当涨后的薪水大于6000,插入审计信息 if:new.sal > 6000 then insert into audit_info values(:new.empno||' '||:new.ename||''||:new.sal); end if; end; /查看全部
-
create or replace trigger checksalary before update on emp for each row begin --if 涨后的薪水 < 涨前的薪水 then if :new.sal < :old.sal then raise_application_error(-20002,'涨后的薪水不能少于涨前的薪水,涨后的薪水:'||:new.sal||',涨前的薪水:'||:old.sal); end if; end; / :old 和 :new 代表同一条记录 :old 表示操作该行之前,这一行的值 :new 表示操作该行值后,这一行的值查看全部
-
select sysdate from dual; // 取出系统当前时间 select to_char(sysdate,'day') from dual; // 星期 1. 周末:to_char(sysdate,'day') in ('星期六','星期日') select to_char(sysdate,'hh24') from dual; // 取出系统时间的小时部分:23 (字符串) select to_number(to_char(sysdate,'hh24')) from dual; // 转化成数字型 2. 上班前,下班后:to_number(to_char(sysdate,'hh24')) not between 9 and 18 create or replace trigger securityemp before insert (插入之前) on emp [declare] begin if to_char(sysdate,'day') in ('星期六','星期日') or to_number(to_char(sysdate,'dya')) not between 9 and 18 then --禁止insert新员工 错误代码要求区间: -20000 ~ -20999 raise_application_error(-20001,'禁止在非工作时间插入新员工'); // 自定的错误代码 // 错误信息 and if; end; / (补充:raise 表示数据库产生了错误)查看全部
-
create[or replace] trigger 触发器名 {before|after} {delete|insert|update[of 列名]} on 表名 [for each row [when(条件)]] (有这条语句的话就是行级触发器,否则就是语句级触发器) PLSQL 块 1. 语句级触发器 在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。(针对的是表,触发最多一次) 2. 行级触发器 触发语句作用的每一条记录都被触发。在行级触发器中使用 :old 和 :new 伪记录变量,识别值的状态。(针对的是行,触发器触发次数不一样,有多少行满足条件就触发多少次)查看全部
-
创建触发器 create trigger saynewemp after insert on emp declare begin dbms_output.put_line('成功插入新员工'); end; /查看全部
举报
0/150
提交
取消