概述
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力
create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态。
参数说明:
触发器名称: 自己定义
触发的时机: before /after 在执行动作之前还是之后
触发的动作 :指的激发触发程序的语句类型<insert ,update,delete>
each row:操作每一行我都监控着
触发器创建语法四要素:
1.监视地点(table)
2.监视事件(insert/update/delete)
3.触发时间(after/before)
4.触发事件(insert/update/delete)
创建触发器:
mysql> create trigger t after delete on user for each row
-> delete from `order` where u_id=3;
select * from `order`;
delete from `user` where id=3;
select * from `order`;
删除触发器:
drop trigger t;
查看触发器:
show create trigger t;
show triggers;
事务:数据库事务:(database transaction): 事务是由一组SQL语句组成的逻辑处理单元,要不全成功要不全失败。
MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型不支持!
数据库默认事务是自动提交的, 也就是发一条 sql 它就执行一条。如果想多条 sql 放在一个事务中执行,则需要使用事务进行处理。当我们开启一个事务,并且没有提交,mysql 会自动回滚事务。或者我们使用 rollback 命令手动回滚事务。
事务的四大特性:ACID
原子性,一致性,隔离性,持久性
commit:提交事务,永久记录
rollback:回滚
start transaction:开启事务
#用来修改事务的自动提交
set atuocommit=0/1
#查看存储引擎
show create table user;
show create table `order`;
#修改默认的结尾
delimiter //
#创建事务
mysql> start transaction;
-> update `user` set name = "adadad" where sex=1;
-> update `user` set name = "cccccccccc" where sex=2;
-> //
mysql> select * from user//
mysql> rollback //
mysql> select * from user//
最后
以上就是默默棉花糖为你收集整理的触发器+事务的全部内容,希望文章能够帮你解决触发器+事务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复