栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MYSQL事务的学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MYSQL事务的学习

第一、事务的原则 ACID原则:

原子性(atomicity):要么都成功,要么都失败

一致性(consistency):事务前后的数据完整性要保存一直

持久性(durability):事务提交,事务一旦提交则不可逆转,被持久化到数据库中

隔离性(isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离

        隔离会导致:

脏读:指一个事务读取了另外一个事务未提交的数据。

不可重复读:在一个事务内读取表中某一行数据,多次读取结果不同

幻读(虚读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。

第二、事务的使用 1、MySQL默认开启事务自动提交
set autocommit = 0 -- 关闭事务
set autocommit = 1 -- 开启事务
2、手动处理事务

(1)、创建测试数据库

create database shop character set utf8 collate utf8_general_ci;

(2)、创建表

use shop;
create table account(
    id int not null auto_increment,
    name varchar(11) not null ,
    money decimal(9,2) not null ,
    primary key (id)
)engine = INNODB DEFAULT CHARSET = utf8

(3)、插入数据

insert into account(name, money) VALUES ('wjdsg',10000),('小明',1000)

(4)、模拟转账,wjdsg给小明转账500

set autocommit = 0; -- 关闭mysql默认自动提交
start transaction -- 开启一个事务

update account set money=money-500 where name='wjdsg'; -- wjdsg给小明转账
update account set money=money-500 where name='小明'    -- 小明收到转账

commit; -- 提交时间,数据持久化
rollback;   -- 回滚

set autocommit  = 1;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号