一个简单的触发器

触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。

触发器的特性:

  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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值