mysql触发器

触发器是一个命名的数据库对象,它和一个表关联。当一个特殊的事件发生在该表时,触发器就会被激活。触发器常用于保证数据的一致性操作

1.触发器的创建

触发器必须和某个持久表关联,它不能和某个临时表或者视图关联。同时创建触发器需要权限Trigger权限。根据DEFINER的值不同,可能还需要管理员权限。

触发器的创建语法:

CREATE
    [DEFINER = { user | CURRENT_USER }]
    TRIGGER trigger_name
    trigger_time trigger_event
    ON tbl_name FOR EACH ROW
    [trigger_order]
    trigger_body
trigger_name:表名,不能为视图或临时表名
trigger_time: 触发动作的时间,{before|after}
trigger_event:可以激活触发器的操作,{update|delete|insert }
trigger_body: begin ..end语法块

在语句块中我们可能会需要对数据做修改。这样就需要new ,old 来标识被修改或新增的数据

  1. new(insert,update)

    标识 更新后 或 新增 的数据。trigger_event为insert或者update时,才可以引用new

  2. old(delete,update)
    表示 要删除的 或 修改前 的数据。所以只有trigger_event为delete或者update时,才可以引用old。

2.触发器的删除

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

3.触发器查询

SHOW TRIGGERS [{FROM|in} db_name] [like_or_where]
  • trigger:触发器的名称年
  • evnet: 引起触发器激活的操作。update,delete,insert
  • table: 定义触发器的表
  • statement:创建触发器时所写的语句
  • timing:触发是否在触发事件之前或之后激活。after,before
  • created:创建时间
  • definer:创建者
  • sql_mode: 触发器执行时有效的sql模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值