加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle中的trigger

发布时间:2021-02-01 08:43:20 所属栏目:站长百科 来源:网络整理
导读:https://blog.csdn.net/indexman/article/details/8023740/ https://www.cnblogs.com/sharpest/p/7764660.html https://www.cnblogs.com/yaobolove/p/4781971.html ?触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 --创建映射表CREATE? TABLE? dept_sal ASSELECT? deptno,COUNT(empno) total_emp,SUM(sal) total_salFROM? scott.empGROUP? BY? deptno;--创建触发器CREATE? OR? REPLACE? TRIGGER? EMP_INFO?AFTER? INSERT? OR? UPDATE? OR? DELETE? ON? scott.EMPDECLARE?CURSOR? CUR_EMP IS??SELECT? DEPTNO,COUNT(EMPNO) AS? TOTAL_EMP,SUM(SAL) AS? TOTAL_SAL FROM? scott.EMP GROUP? BY? DEPTNO;BEGIN?DELETE? DEPT_SAL; --触发时首先删除映射表信息?FOR? V_EMP IN? CUR_EMP LOOP??--DBMS_OUTPUT.PUT_LINE(v_emp.deptno || v_emp.total_emp || v_emp.total_sal);??--插入数据??INSERT? INTO? DEPT_SAL??VALUES???(V_EMP.DEPTNO,V_EMP.TOTAL_EMP,V_EMP.TOTAL_SAL);?END? LOOP;END;--对emp表进行DML操作INSERT? INTO? emp(empno,deptno,sal) VALUES(‘123‘,‘10‘,10000);SELECT? * FROM? dept_sal;DELETE? EMP WHERE? empno=123;SELECT? * FROM? dept_sal;

显示结果如下:

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

3)、创建触发器,它将映射emp表中每个部门的总人数和总工资

热点阅读