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

oracle中的trigger

发布时间:2021-01-26 06:42:47 所属栏目:站长百科 来源:网络整理
导读: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 --创建测试表CREATE? TABLE? test(??t_id? NUMBER(4),??t_name VARCHAR2(20),??t_age NUMBER(2),??t_sex CHAR);--创建记录测试表CREATE? TABLE? test_log(??l_user? VARCHAR2(15),??l_type? VARCHAR2(15),??l_date? VARCHAR2(30));

创建触发器:

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 27 28 29 30 31 --创建触发器CREATE? OR? REPLACE? TRIGGER? TEST_TRIGGER?AFTER? DELETE? OR? INSERT? OR? UPDATE? ON? TESTDECLARE?V_TYPE TEST_LOG.L_TYPE%TYPE;BEGIN?IF INSERTING THEN??--INSERT触发??V_TYPE := ‘INSERT‘;??DBMS_OUTPUT.PUT_LINE(‘记录已经成功插入,并已记录到日志‘);?ELSIF UPDATING THEN??--UPDATE触发??V_TYPE := ‘UPDATE‘;??DBMS_OUTPUT.PUT_LINE(‘记录已经成功更新,并已记录到日志‘);?ELSIF DELETING THEN??--DELETE触发??V_TYPE := ‘DELETE‘;??DBMS_OUTPUT.PUT_LINE(‘记录已经成功删除,并已记录到日志‘);?END? IF;?INSERT? INTO? TEST_LOG?VALUES??(USER,V_TYPE,TO_CHAR(SYSDATE,‘yyyy-mm-dd hh24:mi:ss‘)); --USER表示当前用户名END;/--下面我们来分别执行DML语句INSERT? INTO? test VALUES(101,‘zhao‘,22,‘M‘);UPDATE? test SET? t_age = 30 WHERE? t_id = 101;DELETE? test WHERE? t_id = 101;--然后查看效果SELECT? * FROM? test;SELECT? * FROM? test_log;

运行结果如下:

(编辑:核心网)

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

3)、当用户对test表执行DML语句时,将相关信息记录到日志表

热点阅读