oracle中的trigger
发布时间:2021-02-23 06:27:25 所属栏目:站长百科 来源:网络整理
导读:https://blog.csdn.net/indexman/article/details/8023740/ https://www.cnblogs.com/sharpest/p/7764660.html https://www.cnblogs.com/yaobolove/p/4781971.html ?触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户
|
3)、创建触发器,它将映射emp表中每个部门的总人数和总工资
|
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
AS
SELECT?
deptno,
COUNT
(empno) total_emp,
SUM
(sal) total_sal
FROM?
scott.emp
GROUP?
BY?
deptno;
CREATE?
OR?
REPLACE?
TRIGGER?
EMP_INFO
?
AFTER?
INSERT?
OR?
UPDATE?
OR?
DELETE?
ON?
scott.EMP
DECLARE
?
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
??
??
??
INSERT?
INTO?
DEPT_SAL
??
VALUES
???
(V_EMP.DEPTNO,V_EMP.TOTAL_EMP,V_EMP.TOTAL_SAL);
?
END?
LOOP;
END
;
INSERT?
INTO?
emp(empno,deptno,sal)
VALUES
(
‘123‘
,
‘10‘
,10000);
SELECT?
*
FROM?
dept_sal;
DELETE?
EMP
WHERE?
empno=123;
SELECT?
*
FROM?
dept_sal;
显示结果如下:
(编辑:ASP站长)
【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。