mysql内置函数之事务

Posted jason-lin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql内置函数之事务相关的知识,希望对你有一定的参考价值。

事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。

create table user(
id int primary key auto_increment,
name char(32),
balance int
);

insert into user(name,balance)
values
(‘wsb‘,1000),
(‘egon‘,1000),
(‘ysb‘,1000);

#原子操作
start transaction; # 开启事务

update user set balance=900 where name=‘wsb‘; #买支付100元
update user set balance=1010 where name=‘egon‘; #中介拿走10元
update user set balance=1090 where name=‘ysb‘; #卖家拿到90元
commit; # 只要不执行commit都没有完成提交,可以通过rollback回滚

#出现异常,回滚到初始状态
start transaction;
update user set balance=900 where name=‘wsb‘; #买支付100元
update user set balance=1010 where name=‘egon‘; #中介拿走10元
uppdate user set balance=1090 where name=‘ysb‘; #卖家拿到90元,出现异常没有拿到
rollback;
commit;
mysql> select * from user;
+----+------+---------+
| id | name | balance |
+----+------+---------+
|  1 | wsb  |    1000 |
|  2 | egon |    1000 |
|  3 | ysb  |    1000 |
+----+------+---------+
rows in set (0.00 sec)

以上是关于mysql内置函数之事务的主要内容,如果未能解决你的问题,请参考以下文章

MySQL--视图触发器事务存储过程内置函数流程控制索引

49-mysql-视图触发器事务(需要掌握)存储过程内置函数流程控制索引理论

MySQL视图触发器事务存储过程内置函数流程控制索引

MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化

MySQl之TCL(数据事务语言)

片段事务中的实例化错误