mysql 事务

更改CMD中文乱码:set charset gbk;

事务

事务是保证一组数据库操作,要么全部成功,要么全部被失败。事务只对DML有效

事务有 A(Atomicity)、C(Consistency)、I(Isolation)、D(Durability) 四个特性,即原子性一致性隔离性持久性

-- ======== 模拟银行转账案例===========
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',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;

 

隔离级别

1、查看
5.7.2之前 使用 show variables like 'tx_isolation' 或者 select @@tx_isolation;
5.7.2之后 使用 show variables like 'transaction_isolation' 或者 select @@transaction_isolation;

posted @ 2023-06-12 14:09  系统显示名称已被使用  阅读(37)  评论(0)    收藏  举报