MYSQL 事务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL 事务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3047字,纯文字阅读大概需要5分钟。
内容图文
![MYSQL 事务](/upload/InfoBanner/zyjiaocheng/496/a5090bae7cbc499fab96ccda279222a8.jpg)
例如:转账问题。
mysql> create table ac (id int primary key auto_increment,
-> ac_name char(10),ac_money int);
Query OK, 0 rows affected (0.06 sec)//创建表
mysql> desc ac;
+----------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ac_name | char(10) | YES | | NULL | |
| ac_money | int(11) | YES | | NULL | |
+----------+----------+------+-----+---------+----------------+
3 rows in set (0.09 sec)
mysql> insert into ac values (null,"lucy",5000);
Query OK, 1 row affected (0.05 sec)
mysql> insert into ac values (null,"tom",2000);
Query OK, 1 row affected (0.01 sec)//插入数据
mysql> select * from ac;
+----+---------+----------+
| id | ac_name | ac_money |
+----+---------+----------+
| 1 | lucy | 5000 |
| 2 | tom | 2000 |
+----+---------+----------+
2 rows in set (0.00 sec)
//转账 lucy --->tom 1000
update ac set ac_money=ac_money-1000 where id=1;
update ac set ac_money=ac_money+1000 where id=2;
//事务的四个特性(ACID)(掌握和理解):
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
//mysql 事务的操作
//1.开启事务
mysql> begin;
Query OK, 0 rows affected (0.05 sec)
//2.事务的提交(关闭)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
//3.事务的回滚(关闭)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
//4.保存点
mysql> savepoint c;
Query OK, 0 rows affected (0.00 sec)
//5.回滚到保存点
mysql> rollback to savepoint c;
Query OK, 0 rows affected (0.00 sec)
//6.自动提交的设置
mysql> set autocommit=0;//则需要commit操作提交
Query OK, 0 rows affected (0.05 sec)
mysql> set autocommit=1;//则不需要commit操作提交
Query OK, 0 rows affected (0.00 sec)
----------------------------存在的问题-----------
脏读:事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的。
不可重复读:事务1第一次读 A,事务2修改A为B,事务1 第二次读到B
幻读:事务B以插入或删除行等方式来修改事务A的结果集,然后再提交。
以上问题的解决//事务的隔离级别
read uncommitted | 0 未提交读 不解决问题
read committed | 1 已提交读 可以解决脏读
repeatable read | 2 可重复读 避免脏读,不可重复读,
serializable | 3 可序列化 解决一切问题(并发)
---恢复内容结束---
MYSQL 事务
标签:修改 回滚 enc name 序列化 二次 ted abi char
本文系统来源:http://www.cnblogs.com/luojun4061/p/8058032.html
内容总结
以上是互联网集市为您收集整理的MYSQL 事务全部内容,希望文章能够帮你解决MYSQL 事务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。