数据库开发管理工具KStudio触发器及其创建操作介绍
关键字:
KStudio、触发器、人大金仓、KingbaseES
触发器介绍
触发器(Trigger)是数据库管理系统中的一种特殊的存储过程。与存储过程不同的是:触发器不能显示的被调用且它是一种与表相关联的对象,当触发器被启用并满足特定条件时,将自动触发并执行。
1.1 触发器的作用
1.数据完整性和约束:触发器可以用于在插入、更新或删除数据之前进行验证,以确保数据的完整性和约束性。
2.数据审计和日志记录:通过触发器可以记录表中的数据变化,用于审计和追踪目的。
3.自动计算和派生字段:触发器可以用于在数据变化时自动进行计算,并更新相关的字段和表。
4.业务逻辑处理:触发器可以用于实现一些复杂的业务逻辑和数据处理操作。
1.2 触发器的分类
触发器分为表触发器和视图触发器,即触发器可以基于表创建或者基于视图创建。
触发器中进行触发类型、触发时机、触发器类型的设置,表触发器还支持启用状态的设置。其说明如下表所示:
触发器类型介绍:
触发类型 | 说明 |
INSERT | 当进行数据插入时触发 |
UPDATE | 当进行数据更新时触发 |
DELETE | 当进行数据删除时触发 |
TRUNCATE(仅表触发器支持) | 当表中所有数据被删除时触发 |
触发器触发时机介绍:
触发时机 | 说明 |
BEFORE | 在插入、更新、删除操作之前触发 |
AFTER | 在插入、更新、删除操作之后触发 |
INSTEAD OF(仅视图触发器支持) | 对视图进行DML操作时触发并替换掉原始DML语句执行触发器自身的逻辑 |
触发器类型介绍
触发器类型 | 说明 |
ROW | 行级触发器:当一行数据发生变动时触发 |
STATEMENT | 语句级触发器:当多行数据发生变动时触发 |
触发器状态介绍(仅表触发器支持):
状态 | 说明 |
ENABLE | 启用触发器 |
DISABLE | 禁用触发器 |
使用KStudio开发管理工具创建触发器
使用KStudio有三种方式进行触发器的创建:表或视图新建或编辑时创建、导航树右键菜单直接创建、执行SQL语句创建。
- 表编辑时创建
以创建表触发器为例(视图触发器创建流程同表触发器)创建触发器,导航树模式节点下右键菜单选择新建表或选择编辑需要添加触发器的表后进入表基本属性页面,左侧tab页选择触发器即可进入如下界面:
- :触发器TAB页,此页面内可进行触发器的创建或编辑操作。
- :新增按钮,点击按钮即为该表新增一条触发器,如③中所示。
③ :触发器类型设置,此处可对触发器的名称、触发时机、触发类型、触发器类型及启用状态进行设置。
④ :触发器逻辑定义,此处展示了触发器的定义。
⑤ :触发器具体逻辑定义,将此处代码替换为我们所需的逻辑后点击确定按钮即可成功创建触发器
- 导航树右键菜单直接创建
导航树中找到触发器节点后右键选择新建触发器,如下图所示:
选择新建触发器后可进入如下界面:
基本属性栏可对触发器进行名称、基于表或视图、触发时机、触发类型、触发器类型以及启用状态(视图触发器不支持)的设置。
SQL内容中可对触发器的逻辑进行实现。
- 执行SQL语句创建
打开SQL编辑器,执行如下SQL创建触发器:
CREATE TRIGGER [触发器名称] [BEFORE|AFTER|INSTEAD OF] [UPDATE|INSERT|DELETE|TRUNCATE] ON [模式名].[表名|视图名] FOR EACH [ROW|STATEMENT] AS BEGIN [逻辑代码] END;
设置表触发器启用状态如下:
ALTER TABLE [模式名].[表名] [ENABLE|DISABLE] TRIGGER [触发器名称];
PG模式下创建触发器SQL如下:
CREATE TRIGGER [触发器名称] [BEFORE|AFTER|INSTEAD OF] [UPDATE|INSERT|DELETE|TRUNCATE] ON [模式名].[表名|视图名] FOR EACH [ROW|STATEMENT] EXECUTE [函数名称];
注:当为表触发器时,不可设置触发时机为INSTEAD OF,当为视图触发器时不可设置触发类型为TRUNCATE且不可设置启用状态
三、总结
KStudio提供了多种创建触发器的方式,方便用户自由选择。




