MySQL中的事务处理
事务,能保证你做的一系列动作,要么全部成功。如果有一个操作失败,就回退到修改前。
事务功能实现原理:在我们的InnoDB表中,我们执行的SQL语句,都要先存入日志文件,然后再讲执行结果提交到服务器,完成整个操作。
功能实现的语法:
1.SET @@autocommit = 0; (1,为自动提交;0,为手动提交)
COMMIT ; ROLLBACK;
2.START TRANSACTION ;启动事务
COMMIT;成功后提交
ROLLBACK;回到事务启动前的状态。
SAVEPOINT 点名;设置标记,用于使用ROLLBACK TO 点名 回滚到此点状态
特性:ACID
1.原子性(A):事务其实就是执行一组SQL语句,他们中只要有一条语句执行失败,整个事务都失败。
2.一致性(C):即在事务开始之前和事务结束以后,数据库的设定是一样的。
3.隔离性(I):当使用事务对数据进行操作时,我们另外的会话是无法对此条数据进行操作的。我们的InnoDB使用的是数据行锁。
4.持久性(D):当事务成功,数据将提交到数据库,数据就被持久化了。