mysql事务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql事务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2987字,纯文字阅读大概需要5分钟。
内容图文
1.什么是事务?
事务是最小的不可分割的单元,事务能够保证一个业务的完整性
多条SQL语句会有同时成功或同时失败的要求
2.mysql如何控制事务?
mysql默认是开启事务的(自动提交)
mysql> select @@autocommit; +--------------+ | @@autocommit | +--------------+ | 1 | +--------------+ 1 row in set (0.00 sec)
默认事务开启的作用是什么?
当我们去执行一条SQL语句时,效果会马上提现出来,且不能回滚
事务回滚即撤销SQL语句执行的效果
3.如何让事务能够回滚?
通过设置自动提交为FALSE的方法来实现,运用roll back进行回滚
set autocommit=0;
mysql> insert into person values(4,'章华',7); Query OK, 1 row affected (0.02 sec) mysql> select * from person; +------+------+--------+ | id | name | cardid | +------+------+--------+ | 1 | 张三 | 1 | | 2 | 李四 | 3 | | 3 | 王五 | 6 | | 4 | 章华 | 7 | +------+------+--------+ 4 rows in set (0.00 sec) mysql> rollback; Query OK, 0 rows affected (0.07 sec) mysql> select * from person; +------+------+--------+ | id | name | cardid | +------+------+--------+ | 1 | 张三 | 1 | | 2 | 李四 | 3 | | 3 | 王五 | 6 | +------+------+--------+ 3 rows in set (0.00 sec)
再次提交数据 mysql> insert into person values(4,'章华',7); Query OK, 1 row affected (0.01 sec) 手动提交 mysql> commit; Query OK, 0 rows affected (0.01 sec) 进行回滚 mysql> rollback; Query OK, 0 rows affected (0.00 sec) 数据具有持久性,一旦提交就不能再进行回滚 mysql> select * from person; +------+------+--------+ | id | name | cardid | +------+------+--------+ | 1 | 张三 | 1 | | 2 | 李四 | 3 | | 3 | 王五 | 6 | | 4 | 章华 | 7 | +------+------+--------+ 4 rows in set (0.00 sec)
4.当事务开启自动提交时,可以使用begin或者 start transaction来进行手动开启事务
开启自动提交功能
mysql> set autocommit=1; Query OK, 0 rows affected (0.00 sec)
查询事务提交的状态 mysql> select @@autocommit; +--------------+ | @@autocommit | +--------------+ | 1 | +--------------+ 1 row in set (0.00 sec)
开始手动提交
mysql> start transaction; Query OK, 0 rows affected (0.00 sec) 插入提条数据 mysql> insert into person values (9,'六六',8); Query OK, 1 row affected (0.06 sec) mysql> select * from person; +------+------+--------+ | id | name | cardid | +------+------+--------+ | 1 | 张三 | 1 | | 2 | 李四 | 3 | | 3 | 王五 | 6 | | 4 | 章华 | 7 | | 9 | 六六 | 8 | +------+------+--------+ 5 rows in set (0.00 sec) 进行回滚 mysql> rollback; Query OK, 0 rows affected (0.01 sec) mysql> select * from person; +------+------+--------+ | id | name | cardid | +------+------+--------+ | 1 | 张三 | 1 | | 2 | 李四 | 3 | | 3 | 王五 | 6 | | 4 | 章华 | 7 | +------+------+--------+ 4 rows in set (0.00 sec)
事务的四大特性
A原子性:事务是最小的单元,不可以再进行分割
C一致性:同一事务中的SQL语句,必须保证同时成功或同时失败
I隔离性:事务1和事务2之间具有隔离性
D持久性:事务一旦结束,就不可以再进行回滚
事务手动提交的三种方式
1.修改默认提交:set autocommit=0;
2.使用begin;
3.使用start transaction;
事务手动提交:commit;
事务手动回归:collback;
事务的隔离性
内容总结
以上是互联网集市为您收集整理的mysql事务全部内容,希望文章能够帮你解决mysql事务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。