版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
达梦(DM)数据库存储过程和触发器学习
简介
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是7.0版本,简称DM7。
DM7采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM7产品的品质
存储过程
如何写存储过程。函数就是带返回值的存储过程
案例:根据员工的编号找出员工所在部门编号?
分析:达梦带有系统级别的存储过程和用户级别的,我们需要创建用户级别的存储过程
代码如下:
CREATE OR REPLACE PROCEDURE "SYSDBA"."proc001"("EMPID" IN INT)
AUTHID DEFINER
AS
/*变量说明部分*/
dept INT;
BEGIN
/*执行体*/
select department_id into dept from emp where employee_id=EMPID;
print(dept);
END;
注意:这里需要说明的是存储过程函数的参数必须大写,不然会执行失败,我在这里踩坑了
执行存储过程:
触发器
触发器就是我们进行了DML操作的时候需要进行什么备份或者数据记录,方便后期的audit
案例:我们在对员工表员工薪水进行修改的时候,将修改前和修改后的薪水信息保存到 t13这个表中
分析:达梦支持的触发器有 库级、表级、模式级、视图级,因为我们是根据员工表进行操作,所以我们需要创建表级触发器
代码:
create or replace trigger "SYSDBA"."trigger001"
before UPDATE of "SALARY"
on "SYSDBA"."EMP"
referencing OLD ROW AS "OLD" NEW ROW AS "NEW"
for each row
BEGIN
/*触发器体*/
insert into test.t13 values(:old.salary,:new.salary);
END;
执行触发器:
总结:
达梦(DM)数据库的使用总体使用很好,支持国产软件,支持达梦数据库,希望有一天达梦能取代Ora...在中国的市场,加油!!