MySQL触发器

MySQL触发器

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

语法

create trigger	触发器名	触发时间	触发事件	on 表名	for each now
触发器状态
①MySQL的触发事件有三种:insert、update和delete;
  • insert:将新纪录插入表时激活触发程序,例如:通过insert、load、data和replace语句可以激活触发程序运行。

  • update:更改某一行记录时激活触发程序,例如:通过update语句可以激活触发程序运行。

  • delete:从表中删除某一行记录时触发激活程序,例如,通过delete和replace语句可以激活触发程序运行。

②触发器的触发时间:before和after

before表示在触发事件发生之前执行触发程序,after表示在触发事件发生之后执行触发程序。

③for each row表示行级触发

for each row表示更新(insert、update或者delete)操作影响的每一条记录都会执行一次触发程序。

④new,old关键字:触发程序中可以使用old,new关键字
  • 向表中插入新纪录时,在触发程序中可以使用new关键字表示新纪录。当需要访问新纪录的某个字段时,可以使用"new.字段名"的方式访问。
  • 当从表中删除某条记录时,在触发程序中可以使用old关键字表示
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 触发器是一个与表相关联的数据库对象,它在特定的INSERT、UPDATE或DELETE语句执行时自动执行。MySQL 触发器可以用于实现一些复杂的业务逻辑,比如在插入或更新数据时自动计算某些值、限制特定操作的执行等。 MySQL 触发器分为三种类型:BEFORE、AFTER和INSTEAD OF。BEFORE触发器在执行INSERT、UPDATE或DELETE语句之前执行,可以用于验证数据的合法性、修改数据等;AFTER触发器在执行INSERT、UPDATE或DELETE语句之后执行,可以用于记录日志、更新相关数据等;INSTEAD OF 触发器可以在执行INSERT、UPDATE或DELETE语句时替换原始的操作,可以用于实现自定义的数据更新逻辑。 MySQL 触发器的语法如下: ```sql CREATE TRIGGER trigger_name BEFORE|AFTER|INSTEAD OF INSERT|UPDATE|DELETE ON table_name FOR EACH ROW BEGIN -- 触发器执行的 SQL 语句 END; ``` 其中,`trigger_name` 是触发器的名称,`BEFORE|AFTER|INSTEAD OF` 指定触发器的类型,`INSERT|UPDATE|DELETE` 指定触发器要监听的操作类型,`table_name` 是要监听的表名,`FOR EACH ROW` 表示对表中每一行数据都执行触发器逻辑,`BEGIN` 和 `END` 之间是触发器要执行的 SQL 语句。 例如,下面的代码创建了一个在 `users` 表上监听 INSERT 操作的 BEFORE 触发器,用于自动给 `created_at` 字段赋值当前时间戳: ```sql CREATE TRIGGER users_created_at BEFORE INSERT ON users FOR EACH ROW BEGIN SET NEW.created_at = NOW(); END; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值