事务处理是将多个操作或者命令一起执行,所有命令全部成功执行才意味着该事务的成功,任何一个命令失败都意味着该事务的失败。
因此,事务处理是不是一荣俱荣,而是一毁全毁。
事务的四大特征(ACID)
● BEGIN | Start Transaction:开启事务
● SAVEPOINT 标识名称:保留点,每个保留点都表示它的唯一名字,以便以后回退。在MySQL事务中保留点越多越好,这样能够按照自己的意愿灵活的进行回退。
● ROLLBACK 保留点标识:回滚到指定保留点处
● ROLLBACK:事务回滚,整个事务回滚
● COMMIT;提交事务,COMMIT提交或ROLLBACK回滚后会关闭事务。
● SET AUTOCOMMIT = { 0 | 1 };设置事务自动提交,1自动,0取消自动
● 查询自动提交功能状态:SELECT @@AUTOCOMMIT;
● 事务使用:
BEGIN;#开启事务
MDL语句;#事务失败
ROLLBACK;#事务回滚
--------------------------------------------
BEGIN;#开启事务
MDL语句;#事务成功
COMMIT;#事务提交
事务A与事务B之间具有一定的隔离性
隔离级别 | 非提交读取(脏读) | 不可重复读取 | 幻想读 |
READ UNCOMMITED 读未提交 |
? | ? |
? |
READ COMMITED 读已提交 |
? |
? |
? |
REPEATABLE READ 可重复读 |
? |
? | ? |
SERIALIZABLE 串行化 |
? |
? |
? |
读未提交:Read Uncommitted
读已提交:Read Committed
可重复读:Repeatable Read
串行化:Serializable
设置隔离级别:
查看隔离级别:SHOW VARIABLES LIKE ‘tx_isolation‘;
原文:https://www.cnblogs.com/Dm920/p/11704406.html