MySQL的事务用法:

注意:mysql数据支持事务,但是要求必须是innoDB存储引擎

GRANT:授予访问权限

REVOKE:撤销访问权限

COMMIT:提交事务处理

ROLLBACK:事务处理回退

SAVEPOINT:设置保存点

LOCK:对数据库的特定部分进行锁定

start transaction / begin:开启事务

事务的ACID特性:

原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。数据库事务的不可再分的原则即为原子性。 组成事务的所有SQL必须:要么全部执行,要么全部取消(就像上面的银行例子)。

一致性(Consistency):在事务前/后应保持一致

隔离性(Isolation):某个事务的操作对其他事务不可见

持久性(Durability):事务提交完成后,其影响应该保留下来,不能撤消

如何使用事务:

(1)在执行sql语句之前,我们要开启事务 start transaction;

(2)正常执行我们的sql语句

(3)当sql语句执行完毕,存在两种情况:

1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ

2,某些sql语句失败,我们执行rollback(回滚),将对数据库操作赶紧撤销

数据库事务的隔离性:

同时运行多个事务(多线程并发),当这些事务访问相同数据库时,如果没有采取隔离机制,就会导致各种问题。(共享数据的问题)

脏读:更新事务却没有提交,之后,回滚事务,读取的内容就是临时且无效的

不可重复读:两个事务,一个更新并提交了该字段,起一个再次读取同一个字段,值就不同了

幻读:一个事务在该表中插入或删除一些行,之后,另一事务再去读取同一个表,就会多出或少了几行

原文地址:https://www.cnblogs.com/sycl/p/13854515.html