概述
触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。
触发器的特性:
1、有begin end体,begin end;之间的语句可以写的简单或者复杂
2、什么条件会触发:I、D、U
3、什么时候触发:在增删改前或者后
4、触发频率:针对每一行执行
5、触发器定义在表上,附着在表上。
也就是由事件来触发某个操作,事件包括INSERT语句,UPDATE语句和DELETE语句;可以协助应用在数据库端确保数据的完整性。
但是触发器很耗性能,能不用就不用
下面是一个简答触发器
CREATE TRIGGER:创建触发器
insert_rp_reporting :触发器的名称
AFTER 在操作之后,同理 BEFORE 是在操作之前
rim_rp_reporting_informant 首先操作的表名
UPDATE rim_rp_reporting 更新表 rim_rp_reporting 注意不能更新自己也就是说不能更新首先操作的表。相当于同时执行了插入和更新,mysql语法不通过。
all_informant = 后面括号里的是查询的语句,有时直接可以赋值,这里复杂了一些
new.reporting_id 前端出入的参数,注意要加上new.
CREATE TRIGGER insert_rp_reporting AFTER INSERT ON rim_rp_reporting_informant FOR EACH ROW
BEGIN
UPDATE rim_rp_reporting
SET all_informant = (
SELECT
allName
FROM
(
SELECT
GROUP_CONCAT(a.a0101) AS allName
FROM
rim_rp_reporting_informant a
WHERE
a.is_deleted = 0
AND reporting_id = new.reporting_id
GROUP BY
a.reporting_id
) AS a
)
WHERE
reporting_id = new.reporting_id;
END;
最后
以上就是怕黑翅膀为你收集整理的一个简单的触发器的全部内容,希望文章能够帮你解决一个简单的触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复