開源鴻蒙 OpenHarmony 技術指導委員會成員公佈,華為軟體領域首席科學家當選 TSC 主席
阿新 • • 發佈:2022-01-24
ACID
A:原子性
C:一致性
I:隔離性
D:永續性
原子性(atomicity)
一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)
事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)
一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
永續性(durability)
永續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響
事務相關操作
start transcation; # 開啟事務
rollback # 回滾到操作之前的狀態
commit # 確認事務操作 之後不能回滾
# 先介紹事務的三個關鍵字 再去用表實際展示效果 create table user( id int primary key auto_increment, name char(32), balance int ); insert into user(name,balance) values ('jason',1000), ('egon',1000), ('tank',1000); # 修改資料之前先開啟事務操作 start transaction; # 修改操作 update user set balance=900 where name='jason'; #買支付100元 update user set balance=1010 where name='egon'; #中介拿走10元 update user set balance=1090 where name='tank'; #賣家拿到90元 # 回滾到上一個狀態 rollback; # 開啟事務之後,只要沒有執行commit操作,資料其實都沒有真正重新整理到硬碟 commit; """開啟事務檢測操作是否完整,不完整主動回滾到上一個狀態,如果完整就應該執行commit操作""" # 站在python程式碼的角度,應該實現的虛擬碼邏輯, try:update user set balance=900 where name='jason'; #買支付100元 update user set balance=1010 where name='egon'; #中介拿走10元 update user set balance=1090 where name='tank'; #賣家拿到90元 except 異常: rollback; else: commit;