触发器+事务

触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力

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//

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值