成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個簡單的小案例帶你理解MySQL中的事務

數據庫 MySQL
事務又叫做TCL,全稱是transaction control language,意思是事務控制語言。

事務又叫做TCL,全稱是transaction control language,意思是事務控制語言。這篇文章還是屬于我的mysql基礎文章,在前面我們介紹了下面這些基礎知識:

  • 數據庫的增查改刪操作
  • 數據表的增查改刪操作
  • 數據的增查改刪操作
  • 數據的約束以及增查改刪
  • Mysql中的內置函數

這篇文章還是基礎系列的文章,主要是介紹mysql中的事務,為了保持文章的完整性,就算你沒有看過之前的教程也沒問題。

[[282219]]

一、事務的理解

張三有1000塊錢,李四也有1000塊錢,張三給李四500,還剩下500,李四此時就有1500。我們想象著會執行下面的mysql語句:

  1. update table user set money=500 where name = "張三";  
  2. update table user set money=1500 where name = "李四"; 

但是在計算機中可能會不一樣??赡苌厦嬲Z句執行了下面的沒有執行,因此為了保證兩條語句要么都執行,要么都不執行,這時候就用到了事務。

事務的意思是一條或者是一組語句組成一個單元,這個單元要么全部執行,要么全不執行。

事務具有四個特性,也是面試??嫉乃膫€特性ACID:

  • A(原子性Atomicity):原子性指的是事務是一個不可分割的,要么都執行要么都不執行。
  • C(一致性Consistency):事務必須使得數據庫從一個一致性狀態,到另外一個一致性狀態。
  • I(隔離性Isolation):指的是一個事務的執行,不能被其他的事務所干擾。
  • D(持久性Durability):持久性指的是一個事務一旦提交了之后,對數據庫的改變就是永久的。

二、創建一個事務

事務其實可以劃分為兩大類:隱式的事務和顯示的事務:

  • 隱式的事務很簡單,比如我們的insert、delete、update、select這些語句都是隱式的事務。
  • 顯示的事務指的是帶有很明顯的開始和結束的標記,下面就來創建一個顯示的事務。

步驟一:禁用步驟提交功能

  1. set autocommit = 0; 

步驟二:開啟一個事務

  1. start transaction; 

步驟三:sql語句

  1. update table user set money=500 where name = "張三";  
  2. update table user set money=1500 where name = "李四"; 

步驟四:結束事務

commit(提交)或者是rollback(回滾)。如果確定我們的語句沒有問題,那么我們就可以commit,如果認為我們的語句有問題,那就rollback。

一個簡單的小案例帶你理解mysql中的事務

在這里新建了一個表,然后插入了兩條數據。下面我們使用事務,來更新一下:

一個簡單的小案例帶你理解mysql中的事務

在這里我們使用的是commit進行提交。當然如果突然發現我們之前的操作有錯誤,那就可以使用rollback。

三、事務的隔離級別

上面的事務在單個情況下一般不會出現什么問題,但是如果同時運行多個,就會出現問題了。我們知道并發操作總是會出現各種各樣的問題,對于事務來說就會出現下面三個典型的問題:

(1)臟讀

有倆事務T1,T2。如果T1讀了一條數據,這條數據是T2更新的但是還沒提交,突然T2覺得不合適進行事務回滾了,也就是不提交了。此時T1讀的數據就是無效的數據。

(2)不可重復讀

有倆事務T1,T2。如果T1讀了一條數據,之后T2更新了這條數據,T1再次讀取就發現值變了。

(3)幻讀

有倆事務T1,T2。如果T1讀了一條數據,之后T2插入了一些新的數據,T1再次讀取就會多出現一些數據。

如何去解決這些問題呢?既然多個事務同時運行不好,那就把他們隔離開來。這時候就用到了事務的隔離性。

一個簡單的小案例帶你理解mysql中的事務

mysql默認的事務隔離級別為repeatable-read,Oracle默認的是read-committed,

想要去演示事務的隔離級別也很簡單,只需要開啟兩個客戶端演示就OK了,在這里就不說了。

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-03-26 17:00:53

HashMapputJava

2023-02-07 10:40:30

gRPC系統Mac

2017-04-26 14:48:01

Chrome程序擴展

2017-08-17 16:37:59

MySQL數據遷移

2024-07-29 00:02:00

DemoVue開發

2020-03-18 13:40:03

Spring事數據庫代碼

2011-03-24 09:34:41

SPRING

2012-12-07 10:04:58

管理項目管理日常管理

2023-12-26 08:08:02

Spring事務MySQL

2009-07-14 16:02:42

JDBC例子

2020-11-09 06:38:00

ninja構建方式構建系統

2018-11-22 14:09:45

iOS架構組件開發

2009-08-19 04:14:00

線性鏈表

2021-09-07 07:34:42

CSS 技巧代碼重構

2012-08-07 11:28:13

卸載linux

2011-09-08 10:46:12

Widget

2016-03-03 14:29:15

2009-03-26 10:11:47

2010-04-19 17:21:36

Oracle寫文件

2018-09-18 10:11:21

前端vue.jsjavascript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产乱码久久久久久久久 | 天堂亚洲网 | 青青久在线视频 | 日韩高清www | 日屁视频 | 精品一区二区三区在线观看国产 | 午夜在线精品偷拍 | 国产三区视频在线观看 | 亚洲成人二区 | 99资源站 | 综合久 | 中文一区二区 | 成人网在线观看 | 欧洲免费视频 | av免费网址 | 日本精品免费在线观看 | 欧美日韩精品久久久免费观看 | 欧美性一区二区三区 | 综合久久综合久久 | 成人a免费 | h小视频 | 国产精品日日做人人爱 | 日韩快播电影 | 色综合天天综合网国产成人网 | 午夜爽爽爽男女免费观看影院 | 国内精品久久精品 | 中文字幕一区二区三区精彩视频 | 欧美精品成人一区二区三区四区 | 久久草在线视频 | 免费视频中文字幕 | 欧美日韩视频网站 | 久久久久久综合 | 欧美久久一区 | 天天干狠狠操 | 欧美日韩综合一区 | 成人欧美一区二区三区1314 | 久久国产精品偷 | 综合激情av | 超碰人人艹 | 91精品国产综合久久久久久 | 日本三级日产三级国产三级 |