最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql事務(wù)管理操作詳解

 更新時(shí)間:2020年04月10日 10:04:02   作者:隨風(fēng)行云  
這篇文章主要介紹了mysql事務(wù)管理操作,結(jié)合實(shí)例形式詳細(xì)分析了mysql事務(wù)管理相關(guān)特性、原理及回滾操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了mysql事務(wù)管理操作。分享給大家供大家參考,具體如下:

本文內(nèi)容:

  • 什么是事務(wù)管理
  • 事務(wù)管理操作
  • 回滾點(diǎn)
  • 默認(rèn)的事務(wù)管理

首發(fā)日期:2018-04-18


什么是事務(wù)管理:

  • 可以把一系列要執(zhí)行的操作稱為事務(wù),而事務(wù)管理就是管理這些操作要么完全執(zhí)行,要么完全不執(zhí)行(很經(jīng)典的一個(gè)例子是:A要給B轉(zhuǎn)錢,首先A的錢減少了,但是突然的數(shù)據(jù)庫斷電了,導(dǎo)致無法給B加錢,然后由于丟失數(shù)據(jù),B不承認(rèn)收到A的錢;在這里事務(wù)就是確保加錢和減錢兩個(gè)都完全執(zhí)行或完全不執(zhí)行,如果加錢失敗,那么不會(huì)發(fā)生減錢)。
  • 事務(wù)管理的意義:保證數(shù)據(jù)操作的完整性。
  • mysql中并不是所有的數(shù)據(jù)引擎都支持事務(wù)管理的,只有innodb支持事務(wù)管理。

事務(wù)管理的特性:

  • 原子性:事務(wù)的整個(gè)操作是一個(gè)整體,不可以分割,要么全部成功,要么全部失敗。
  • 一致性:事務(wù)操作的前后,數(shù)據(jù)表中的數(shù)據(jù)沒有變化。
  • 隔離性:事務(wù)操作是相互隔離不受影響的。
  • 持久性:數(shù)據(jù)一旦提交,不可改變,永久的改變數(shù)據(jù)表數(shù)據(jù)。

事務(wù)管理操作:

  • 開啟事務(wù)管理:開啟之后,下面的sql語句并不會(huì)馬上執(zhí)行并把結(jié)果寫到表中,而是會(huì)寫到事務(wù)日志中。
    • start transaction;
  • 回退操作:回退會(huì)清掉開始事務(wù)管理之后寫到事務(wù)日志中的內(nèi)容,即恢復(fù)到開啟事務(wù)管理之前。
    • 語法:rollback;
    • 注意:回退操作只是回退"寫"的內(nèi)容,對(duì)于普通的讀表select語句不能回退。
  • 事務(wù)提交:將sql語句的結(jié)果寫到數(shù)據(jù)表中。
    • 語法:commit:

實(shí)驗(yàn)表:

create table bankaccount(id int primary key auto_increment,name varchar(15),money int);
insert into bankaccount(name,money) values("Jobs",2000);
insert into bankaccount(name,money) values("Bill",3000);

image

image

補(bǔ)充:

  • 當(dāng) commit 或 rollback 語句執(zhí)行后,事務(wù)會(huì)自動(dòng)關(guān)閉(將來的更改會(huì)隱含提交)。
  • 鎖機(jī)制:在事務(wù)操作一個(gè)表時(shí),如果使用索引來取值,那么會(huì)鎖定到對(duì)應(yīng)行;如果沒有使用索引來取值,那么會(huì)鎖定整個(gè)表。鎖定之后其他連接無法操作指定行或表。

回滾點(diǎn):

  • 回滾點(diǎn)可以指定rollback回退的位置【比如現(xiàn)在打了100條命令,發(fā)現(xiàn)第81打錯(cuò)了,如果回滾到打了81命令之前一點(diǎn)而不是回滾到開啟事務(wù)之前就可以節(jié)省下很多時(shí)間。】
  • 語法:
    • 創(chuàng)建回滾點(diǎn):savepoint 回滾點(diǎn)名;
    • 回滾到回滾點(diǎn):rollback to 回滾點(diǎn)名;

image

補(bǔ)充:

  • 回滾點(diǎn)在事務(wù)管理關(guān)閉(rollback或commit之后)之后失效,不要在事務(wù)之外使用回滾點(diǎn)。

默認(rèn)的事務(wù)管理:

  • 默認(rèn)情況下,mysql的事務(wù)管理是關(guān)閉(自動(dòng)事務(wù))的,語句的結(jié)果會(huì)馬上寫到數(shù)據(jù)表中。
    • 可以通過show variable like 'autocommit';來查看是否開啟自動(dòng)事務(wù),值為1為自動(dòng)事務(wù)已開啟,為0則為關(guān)閉。
  • 關(guān)閉自動(dòng)事務(wù):set autocommit =0;【關(guān)閉后需要commit來執(zhí)行每一條語句,相當(dāng)于開始了事務(wù)管理】
    • 不過注意的是set autocommit針對(duì)的是會(huì)話變量,所以這個(gè)設(shè)置只在此次會(huì)話連接中生效。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL事務(wù)操作技巧匯總》、《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫計(jì)有所幫助。

相關(guān)文章

  • 后端服務(wù)器中如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫操作接口

    后端服務(wù)器中如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫操作接口

    文章主要介紹了如何在Node.js中使用mysql模塊連接MySQL數(shù)據(jù)庫,并通過Express框架實(shí)現(xiàn)數(shù)據(jù)庫操作接口,前端可以通過Axios庫與后端進(jìn)行交互,實(shí)現(xiàn)數(shù)據(jù)操作
    2024-11-11
  • MySQL入門教程(七)之視圖

    MySQL入門教程(七)之視圖

    視圖是從一個(gè)或多個(gè)表中導(dǎo)出來的虛擬表。視圖就像一個(gè)窗口,通過這個(gè)窗口可以看到系統(tǒng)專門提供的數(shù)據(jù)。本文給大家介紹MySQL入門教程(七)之視圖,需要的朋友參考下
    2016-04-04
  • Mysql中Identity 詳細(xì)介紹

    Mysql中Identity 詳細(xì)介紹

    這篇文章主要介紹了Mysql中Identity 的相關(guān)資料,并附示例代碼,需要的朋友可以參考下
    2016-09-09
  • mysql中null(IFNULL,COALESCE和NULLIF)相關(guān)知識(shí)點(diǎn)總結(jié)

    mysql中null(IFNULL,COALESCE和NULLIF)相關(guān)知識(shí)點(diǎn)總結(jié)

    這篇文章主要介紹了mysql中null(IFNULL,COALESCE和NULLIF)相關(guān)知識(shí)點(diǎn),結(jié)合實(shí)例形式總結(jié)分析了mysql中關(guān)于null的判斷、使用相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • SQL去重方法匯總

    SQL去重方法匯總

    這篇文章主要給大家分享了SQL去重方法匯總,在使用SQL提數(shù)的時(shí)候,常會(huì)遇到表內(nèi)有重復(fù)值的時(shí)候,比如我們想得到?uv?(獨(dú)立訪客),就需要做去重。下面我們就來看看去重都有哪些方法吧
    2022-01-01
  • MySQL 兩種恢復(fù)數(shù)據(jù)的方法

    MySQL 兩種恢復(fù)數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL 兩種恢復(fù)數(shù)據(jù)的方法,幫助恢復(fù)線上數(shù)據(jù),保證數(shù)據(jù)完整,感興趣的朋友可以了解下
    2020-10-10
  • Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表

    Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表

    在Mysql的范圍分區(qū)表定義中,分區(qū)范圍需要連續(xù)并且不會(huì)有覆蓋,定義范圍分區(qū)表時(shí),使用VALUES LESS THAN操作符,這篇文章主要介紹了Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表,需要的朋友可以參考下
    2024-08-08
  • MySQL的鎖機(jī)制之全局鎖和表鎖的實(shí)現(xiàn)

    MySQL的鎖機(jī)制之全局鎖和表鎖的實(shí)現(xiàn)

    本文主要介紹了MySQL的鎖機(jī)制之全局鎖和表鎖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • mysql同步問題之Slave延遲很大優(yōu)化方法

    mysql同步問題之Slave延遲很大優(yōu)化方法

    這篇文章主要介紹了mysql同步問題之Slave延遲很大優(yōu)化方法,需要的朋友可以參考下
    2016-05-05
  • 防止服務(wù)器宕機(jī)時(shí)MySQL數(shù)據(jù)丟失的幾種方案

    防止服務(wù)器宕機(jī)時(shí)MySQL數(shù)據(jù)丟失的幾種方案

    這篇文章主要介紹了防止服務(wù)器宕機(jī)時(shí)MySQL數(shù)據(jù)丟失的幾種方案,結(jié)合實(shí)踐介紹了Replication和Monitor以及Failover這三個(gè)項(xiàng)目的應(yīng)用,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

新化县| 锦州市| 武鸣县| 辽阳市| 中山市| 崇礼县| 莆田市| 揭东县| 祁阳县| 喜德县| 富川| 手游| 绥芬河市| 儋州市| 柏乡县| 隆化县| 旬阳县| 阜平县| 阿巴嘎旗| 金平| 塘沽区| 嘉义县| 金堂县| 合江县| 安义县| 缙云县| 斗六市| 团风县| 宁海县| 灵丘县| 麟游县| 丹棱县| 临沂市| 金昌市| 高要市| 西城区| 泌阳县| 吉林省| 哈密市| 名山县| 尼勒克县|