全国咨询/投诉热线:400-618-4000

mysql中事务怎么用?【运维培训】

更新时间:2020年06月03日14时54分 来源:传智播客 浏览次数:

1、场景

一组sql(增删改)要么都执行,要么都不执行。

场景:A有10000元

B有10000元

A向B转账500,是两条更新

update bill set 余额=余额-500 where A;

update bill set 余额=余额+500 where B;

这两条数据必须要么都执行,要么都不执行,如果执行了一半,发生问题,那么执行过的sql要回滚。

2、事务(transaction)的讲解

什么是事务?

事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。

事务的优点

(1) A(atomicity) 原子性。事务里面的操作,要么全部成功执行,要么全部失败回滚,不可以只执行其中的一部分。

(2) C(consistency) 一致性。一个事务的执行不应该破坏数据库的完整性约束。

(3)I(isolation) 隔离性。通常来说,事务之间的行为不应该互相影响。

(4)D(durability) 持久性。事务提交之后,需要将提交的事务持久化到磁盘。即使系统崩溃,提交的数据也不应该丢失。

使用事务的好处

在修改数据的操作中保持数据的完整性.

事务的使用

语法

开启事务: start  transaction  或 begin [work]

sql语句的执行

提交事务commit

回滚事务:rollback;

在事务开始和结束之间的这些sql,就在同一个事务中。

例题

创建表并且插入数据

创建表:

create table info(
    id int auto_increment primary key,
    name varchar(5),
    money decimal(10,2)
);
insert into info values(1,'张三',1000);
insert into info values(2,'李四',1000);

例题:让张三给李四成功转50块

开启事务:start transaction;

mysql事务1


让张三少50块,李四多50块

update info set money=money-50 where id=1;
update info set money=money+50 where id=2;

mysql事务2


查询sql执行的结果

mysql事务3


重新打开一个mysql客户端查看数据;

mysql事务4


数据并未发生变化

提交事务:commit

1591157239703_mysql事务05.jpg


另一个客户端中的数据

1591157249447_mysql事务06.jpg


例题:让张三给李四转50块失败

1591157260639_mysql事务07.jpg


另一个客户端的数据:

1591157272217_mysql事务08.jpg


最后执行回滚,转账失败

1591157288286_mysql事务09.jpg


总结:事务保持数据的完整性,具有原子性。


猜你喜欢:

服务器是什么?服务器空间又是什么?

DNS服务器是什么?DNS劫持又是什么?

什么是域名?域名和URL有什区别?

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额