国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql事務管理的用處

2024-07-24 12:35:37
字體:
來源:轉載
供稿:網友
  這篇文章主要講解了mysql事務管理的用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
 
  什么是事務管理:
 
  可以把一系列要執行的操作稱為事務,而事務管理就是管理這些操作要么完全執行,要么完全不執行(很經典的一個例子是:A要給B轉錢,首先A的錢減少了,但是突然的數據庫斷電了,導致無法給B加錢,然后由于丟失數據,B不承認收到A的錢;在這里事務就是確保加錢和減錢兩個都完全執行或完全不執行,如果加錢失敗,那么不會發生減錢)。
  事務管理的意義:保證數據操作的完整性。
  mysql中并不是所有的數據引擎都支持事務管理的,只有innodb支持事務管理。
  事務管理的特性:
  原子性:事務的整個操作是一個整體,不可以分割,要么全部成功,要么全部失敗。
  一致性:事務操作的前后,數據表中的數據沒有變化。
  隔離性:事務操作是相互隔離不受影響的。
  持久性:數據一旦提交,不可改變,永久的改變數據表數據。
  事務管理操作:
  開啟事務管理:開啟之后,下面的sql語句并不會馬上執行并把結果寫到表中,而是會寫到事務日志中。
  start transaction;
  回退操作:回退會清掉開始事務管理之后寫到事務日志中的內容,即恢復到開啟事務管理之前。
  語法:rollback;
  注意:回退操作只是回退"寫"的內容,對于普通的讀表select語句不能回退。
  事務提交:將sql語句的結果寫到數據表中。
  語法:commit:
  實驗表:
 
  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);
 
  補充:
  當 commit 或 rollback 語句執行后,事務會自動關閉(將來的更改會隱含提交)。
  鎖機制:在事務操作一個表時,如果使用索引來取值,那么會鎖定到對應行;如果沒有使用索引來取值,那么會鎖定整個表。鎖定之后其他連接無法操作指定行或表。
  回滾點:
  回滾點可以指定rollback回退的位置【比如現在打了100條命令,發現第81打錯了,如果回滾到打了81命令之前一點而不是回滾到開啟事務之前就可以節省下很多時間。】
  語法:
  創建回滾點:savepoint 回滾點名;
 
  補充:
  回滾點在事務管理關閉(rollback或commit之后)之后失效,不要在事務之外使用回滾點。
  默認的事務管理:
  默認情況下,mysql的事務管理是關閉(自動事務)的,語句的結果會馬上寫到數據表中。
  可以通過show variable like 'autocommit';來查看是否開啟自動事務,值為1為自動事務已開啟,為0則為關閉。
  關閉自動事務:set autocommit =0;【關閉后需要commit來執行每一條語句,相當于開始了事務管理】
  不過注意的是set autocommit針對的是會話變量,所以這個設置只在此次會話連接中生效。
  看完上述內容,是不是對mysql事務管理的用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南安市| 瓦房店市| 武夷山市| 襄城县| 洛扎县| 大英县| 百色市| 太白县| 进贤县| 内乡县| 九寨沟县| 榆中县| 大兴区| 汉川市| 登封市| 五台县| 静乐县| 红原县| 莱州市| 建阳市| 克拉玛依市| SHOW| 吉水县| 河西区| 万年县| 武夷山市| 恩平市| 钦州市| 竹溪县| 逊克县| 伊金霍洛旗| 乌鲁木齐县| 广西| 正定县| 临沭县| 南皮县| 牙克石市| 临湘市| 吉木萨尔县| 额敏县| 高邑县|