测试事务
创建表
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.00) ,('B',100000.00)
模拟转账事务:
SET autocommit = 0 -- 关闭自动提交
START TRANSACTION -- 开启一个事务(一组事务)
UPDATE `account` SET money=money-500 WHERE `name` = 'A' -- A减500
UPDATE `account` SET money = money+500 WHERE `name` = 'B' -- B加500
COMMIT; -- 提交事务就被持久化了
ROLLBACK; -- 回滚
SET autocommit = 1;
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.00) ,('B',100000.00)
SET autocommit = 0 -- 关闭自动提交
START TRANSACTION -- 开启一个事务(一组事务)
UPDATE `account` SET money=money-500 WHERE `name` = 'A' -- A减500
UPDATE `account` SET money = money+500 WHERE `name` = 'B' -- B加500
COMMIT; -- 提交事务就被持久化了
ROLLBACK; -- 回滚
SET autocommit = 1;