日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql开启事务_MySQL入门之事务(上)

發布時間:2024/2/28 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql开启事务_MySQL入门之事务(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

事務

事務介紹

事務的概念

事務指邏輯上的一組操作,組成這組操作的各個單元,要不全部成功,要不全部不成功

數據庫開啟事務命令

start transaction 開啟事務 (等同于set autocommit = off )

Rollback 回滾事務

Commit 提交事務

Mysql中使用事務

1.創建表

create table account(

id int primary key auto_increment,

name varchar(20),

money double

);

insert into account values(null,'aaa',1000);

insert into account values(null,'bbb',1000);

insert into account values(null,'ccc',1000);

2、MySQL中事務默認自動提交的,每當執行一條SQL,就會提交一個事務 (一條SQL 就是一個事務)

Oracle 中事務默認 不自動提交,需要在執行SQL 語句后 通過commint 手動提交事務

3、mysql管理事務

方式一 :同時事務管理SQL 語句

start transaction 開啟事務

rollback 回滾事務 (將數據恢復到事務開始時狀態)

commit 提交事務 (對事務中進行操作,進行確認操作,事務在提交后,數據就不可恢復)

方式二:數據庫中存在一個自動提交變量 ,通過 show variables like '%commit%'; ---- autocommint 值是 on,說明開啟自動提交

關閉自動提交 set autocommit = off / set autocommit = 0

如果設置autocommit 為 off,意味著以后每條SQL 都會處于一個事務中,相當于每條SQL執行前 都執行 start transaction

補充:Oracle中 autocommit 默認就是 off

Jdbc使用事務

當Jdbc程序向數據庫獲得一個Connection對象時,默認情況下這個Connection對象會自動向數據庫提交在它上面發送的SQL語句。若想關閉這種默認提交方式,讓多條SQL在一個事務中執行,可使用下列語句:

JDBC控制事務語句

Connection.setAutoCommit(false); // 相當于start transaction

Connection.rollback(); rollback

Connection.commit(); commit

事務特性(ACID)

原子性(Atomicity)
原子性是指事務是一個不可分割的工作單位,事務中的操作要么都發生,要么都不發生。

一致性(Consistency)
事務前后數據的完整性必須保持一致。

隔離性(Isolation)
事務的隔離性是指多個用戶并發訪問數據庫時,一個用戶的事務不能被其它用戶的事務所干擾,多個并發事務之間數據要相互隔離。

持久性(Durability)
持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,接下來即使數據庫發生故障也不應該對其有任何影響。

注:多個線程開啟各自事務操作數據庫中數據時,數據庫系統要負責隔離操作,以保證各個線程在獲取數據時的準確性

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的mysql开启事务_MySQL入门之事务(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。