首页 > 其他分享 >手工事务-2022-12-1

手工事务-2022-12-1

时间:2022-12-01 15:33:29浏览次数:47  
标签:autocommit 事务 SET 手工 -- money account 12 2022

-- MYSQL 是默认开启事务自动提交的
SET autocommit = 0 -- 关闭
SET autocommit = 1 -- 自动开启 默认的

-- 手动处理事务
SET autocommit = 0 -- 关闭 自动提交

-- 开启事务
START TRANSACTION -- 标记事务开始,从这个之后都在同一个事务中

INSERT xx
INSERT xx

-- 提交 持久化 (成功)
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(20) NOT NULL,
`money` DECIMAL(9,2) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8

INSERT INTO account(`name`,`money`)
VALUES('A',2000.00),('B',10000.00)

-- 模拟转账
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;

标签:autocommit,事务,SET,手工,--,money,account,12,2022
From: https://www.cnblogs.com/RUI2022/p/16941545.html

相关文章