您的位置:首页 > 数据库 > MySQL

MySQL数据库事务基本操作

2017-06-22 13:33 155 查看
这篇日志是自己学习了MySQL数据库的事务之后,总结的一点心得体会。都是一些非常基础的知识点。如能帮助诸位初学者,那真是我的荣幸。
数据库的事务,很多的博客也都有了详细的介绍。最基本的事务特性啊(ACID)这里就不再赘述。
首先,如果想要开启MySQL数据库的事务,需要我们手动设置。

**1、开启数据库的事务**
我们在Navicat中,新建一个查询,输入:`start transaction;`

**2、删除表中的某个用户**


delete from tb_user where userId = 1;


这时,我们查看数据的话,userId为1的数据仍然存在。但是如果用select语句查询的话,这条数据是查不到的。

**3、恢复删除的用户(rollback 操作)**


rollback;


**4、commit 操作**


commit;


执行了commit操作之后,rollback操作将无效。

在多线程情况下,事务并发可能会引发以下问题:
1、脏读:一个事务读取到另一个事务未提交的更新数据
2、不可重复读:一个事务运行期间两次读取相同数据但是内容不一 致,原因是两次读取期间有其它事务对数据做了更新并提交。也可以说这个事务读到了另外一个事务已经提交的更新数据。
3、虚读/幻影读:一个事务运行期间两次读取相同数据但是内容不一 致,原因是两次读取期间有其它事务对数据进行了插入或删除了符合条件的数据并提交。也可以说这个事务读到了另外一个事务已经提交的新插入或删除的数据。
水平所限,目前我只知道可以通过设置事务的隔离级别来解决以上问题。但本篇的重点是数据库的基本操作,所以不在此展开。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: