mysql是默认开启事务自动提交的
SET autocommit=0 -- 关闭自动事务 SET autocommit=1 -- 开启自动事务 -- 手动处理事务 SET autocommit=0 -- 关闭自动事务 -- 开启事务 START TRANSACTION -- 标记一个事务的开始,从这个之后的sql,都在同一个事务内 -- 提交(成功) COMMIT; -- 回滚(失败) ROLLBACK; -- 事务结束 SET autocommit=1 -- 开启自动事务 -- 下面的了解即可 SAVEPOINT -- 设置一个事务的保存点 ROLLBACK TO SAVEPOINT -- 回滚到保存点 RELEASE SAVEPOINT -- 删除保存点 模拟场景 CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci USE `shop` CREATE TABLE `account`( `id` INT(3) NOT NULL AUTO_INCREMENT, `name` VARCHAR (30) NOT NULL, `money` DECIMAL(9,2) NOT NULL, PRIMARY KEY(`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO `account`(`name`,`money`) VALUES ('A',2000),('B',10000) -- 模拟转账:事务 SET autocommit =0; START TRANSACTION UPDATE `account` SET money=money-500 WHERE `name`='A' UPDATE `account` SET money=money+500 WHERE `name`='B' COMMIT; ROLLBACK; SET autocommit=1;