sql数据库事务详解笔记 no3.

事务(Transaction)

*事务的解释?

其实指的是一组操作,里面包含许多个单一的逻辑。只要有一个逻辑没有执行成功,那么都算失败。所有的数据都回归到最初的状态(回滚)

*为什么要有事务?

为了确保逻辑的成功.例子:银行转账

使用命令行的例子:

sqlyog中创建表格:
在这里插入图片描述
插入数据:
在这里插入图片描述
cmd:

mysql -u root -p

回车输入密码
SQL语句进入创建的数据库bank

use bank

在这里插入图片描述
SQL语句查询刚刚创建的表格account

select * form account

在这里插入图片描述
修改一下数据库中的值提交:

update account set money = money -100 where id=1;

在这里插入图片描述
在sqlyog中刷新得到结果:
在这里插入图片描述

sql中再次查询得到结果:
在这里插入图片描述
这两个变量是否不一样呢?我们进入变量查询中看一下:

show variables like '%commit%';

在这里插入图片描述
事务包含多个操作 这里执行两个操作,如果两个都执行成功了就执行commit 提交;如果一条或者两条执行失败了就执行rollback回滚操作。
这里我们:

set autocommit =off;

在这里插入图片描述
并查询:

 show variables like '%commit%';

在这里插入图片描述
怎么看回滚呢?
再次执行SQL语句减一百 查一下:
在这里插入图片描述
查看一下sqlyog刷新:
在这里插入图片描述
可以看到没有变化!
现在有提交吗?有回滚吗?都看不出来。
现在我们返回cmd MySQL 输入提交:

commit;

在这里插入图片描述
刷一下:
在这里插入图片描述
变成了八百,这里可以看出要是事务没有提交是不会除结果的,一旦提交这个事务就结束了,怎样在开一个事务呢?

start transaction;

在这里插入图片描述
在执行SQL语句减一百在查询:
在这里插入图片描述
刷新一下还是八百:
在这里插入图片描述
如果想回滚怎么办?
减一百700 在回滚 再次查询又是八百这里 我们就实现了数据库的回滚:

rollback;

在这里插入图片描述
rollback也是代表了一个事务的结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值