达梦数据库编译简单触发器----工具向

达梦数据库编译简单触发器----工具向

.
.
.

1.做一个触发器,当某个用户对数据库进行create,alter,drop操作时,记录操作用户,操作时间,操作类型(增删改),操作对象(表或用户),操作对象名称(表名)

首先我们触发器工作需要记录操作,先创建一个表,拥有以上所有字段。
在这里插入图片描述
然后我们开始创建触发器 (库级触发器)
在触发时间中加上增删改还有清空表操作
设置为操作之前

在这里插入图片描述

在触发体中写insert语句,为插入TT表。
其中 :eventinfo.optype 这种数据字典可在达梦数据库sql语言手册中找到

	insert into TT values(
	user,sysdate,
	:eventinfo.optype,
	:eventinfo.objecttype,
	:eventinfo.objectname);

在这里插入图片描述

保存后我们启动触发器

在这里插入图片描述

启动完成后,可执行一次创建表,然后查询TT表中是否有自动插入信息。

在这里插入图片描述
在这里插入图片描述

2.做一个修改表数据,记录修改数值的触发器,如:

当修改职位表中的职位工资时,记录被修改的职位和原工资与现工资

首先创建表
表的数据类型无所谓,记住不要原数据为字符型,插入的表为int就好
在这里插入图片描述

编写触发器
使用表级触发器
为方便记录职位名称,我们也勾选职位字段,然后勾选最大工资与最小工资字段。

在这里插入图片描述

编写触发体
将新旧数值插入AAAA
其中
:old.字段 为旧值
:new.字段 为新值

BEGIN
	/*触发器体*/
	insert into AAAA values(
	:old.job_title,
	:old.MIN_SALARY,:new.MIN_SALARY,
	:old.MAX_SALARY,:new.MAX_SALARY);
END;

在这里插入图片描述

开启触发器,我们测试一下
(如果编写有问题操作出错,我们也可以在编译中查到错误原因)

在这里插入图片描述

我们修改的id为12的职位,有职位名称总经理助理,最小工资5000,最大工资20000

在这里插入图片描述

执行完成后,我们查看记录表AAAA,其中显示了职位的原来工资,现在工资
在这里插入图片描述

发布了6 篇原创文章 · 获赞 1 · 访问量 2746

猜你喜欢

转载自blog.csdn.net/Alan_lsz/article/details/100666681