DB----事务处理

事务处理

将对数据库进行隔离,acid(原子性,一致性,隔离性,持久性)

  • 只有INnoDB类型的表支持事物处理
  • autocommit=false的情况下操作insert / update / delete(也就是对数据的更改),如果不明确的指定是否commit或者rollback,对外面的数据是没有影响的。
    MyIsam 数据库引擎不起作用,修改:
alter table t1 engine=innodb [AUTO_INCREMENT=1 CHARSET=utf8  comment '数据引擎修改']
show create table t1;
一般设置
set autocommit = 0;   自动提交机制
start transaction;    开启一个事务


demo 一个汇钱的过程
delete from t1 where id=11;   执行操作
update t1 set money = money - 5000 where uid='001'
update t1 set money = money + 5000 where uid='002'

savepoint p1;    保存,设置还原点
rollback to p1;  恢复到p1的原点
防插入锁–自动识别死锁
防插入锁
SELECT * FROM tablename WHERE id>200  那么id>200的记录无法被插入

自动识别死锁:
先进来的进程被执行,后来的进程收到出错消息,并按ROLLBACK方式回滚
innodb_lock_wait_timeout = n 来设置最长等待时间,默认是50
CMD 模式
不让mysql自动提交机制 或为  autocommit= 1; 都会产即生效
mysql > set autocommit = 0;

开启一个事务
mysql > start transaction;

对数据内容进行维护 包括insert update delete这三种操作
mysql > update book set name='redhat' where id=3;

是否提交我的操作,commit是提交  rollback是回滚。
mysql > commit/rollback;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值