事务处理
- 不能回退 SELECT 语句,回退 SELECT 语句也没意义;也不能回退 CREATE 和 DROP 语句。
- MySQL 默认是隐式提交,每执行一条语句就把这条语句当成一个事务然后进行提交。当出现
START TRANSACTION语句时,会关闭隐式提交;当COMMIT或ROLLBACK语句执行后,事务会自动关闭,重新恢复隐式提交。 - 通过
set autocommit=0可以取消自动提交,直到set autocommit=1才会提交;autocommit标记是针对每个连接而不是针对服务器的。 - 指令
START TRANSACTION- 指令用于标记事务的起始点。SAVEPOINT- 指令用于创建保留点。ROLLBACK TO- 指令用于回滚到指定的保留点;如果没有设置保留点,则回退到START TRANSACTION语句处。COMMIT- 提交事务。-- 开始事务START TRANSACTION;-- 插入操作 AINSERT INTO `user`VALUES (1, 'root1', 'root1', 'xxxx@163.com');-- 创建保留点 updateASAVEPOINT updateA;-- 插入操作 BINSERT INTO `user`VALUES (2, 'root2', 'root2', 'xxxx@163.com');-- 回滚到保留点 updateAROLLBACK TO updateA;-- 提交事务,只有操作 A 生效COMMIT;
