傳智播客旗下品牌:|||||

全國咨詢/投訴熱線: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


總結:事務保持數據的完整性,具有原子性。


猜你喜歡:

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天免費試學

    基礎班入門課程限時免費

    申請試學名額
    月入数万的网赚是真的吗 网赚的方法 2019挂机网赚游戏 有做网赚的吗 福建快3平台 网赚联盟 盛源彩票注册 贵州11选5 真实网赚玩彩票是骗局吗 网赚好一点的平台