資料庫之事務及索引

2022-09-20 02:00:10 字數 1680 閱讀 8706

學習問題:一次記錄了多個保留點,但是出錯多的話,要怎樣才能在同一事務中同時解決呢。                   淺嘗輒止哈哈

事務命令

-- start transaction 開啟事務

-- rollback 回滾事務,即撤銷指定的sql語句(只能回退insert delete update語句),回滾到上一次commit的位置

-- commit 提交事務,提交未儲存的事務

-- -- s**epoint 保留點 ,事務處理中設定的臨時佔位符 你可以對它發布回退(與整個事務回退不同)

create table test2(id int primary key auto_increment,name varchar(20)) engine=innodb;

創test2**》設定主鍵》字元型別為varchar型別》資料庫引擎使用innodb引擎(可事務)。

insert into test2(name) value ("alvin"),

("yuan"),

("xialv");

start transaction;

insert into test2 (name)values('silv');

select * from test2;

commit;

插入資料》start transaction為開始事務命令》插入新資料》commit為提交未儲存事務

start transaction;

insert into test2 (name)values('wu');

s**epoint insert_wu;

select * from test2;

delete from test2 where id=4;

s**epoint delete1;

select * from test2;

開始事務》插入資料》s**epoint insert_wu 為保留點》delete1同上

rollback to delete1;

回滾事務,好了之後select 再檢視下

注意事項:回滾後,事務會自動被退出。所以之後再rollback to  delete2 等會提示失敗。

事務1> 原子性(atomicity):原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。

<2> 一致性(consistency):事務前後資料的完整性必須保持一致。在事務執行之前資料庫是符合資料完整性約束的,無論事務是否執行成功,事務結束後的資料庫中的資料也應該是符合完整性約束的。在某一時間點,如果資料庫中的所有記錄都能保證滿足當前資料庫中的所有約束,則可以說當前的資料庫是符合資料完整性約束的。

比如刪部門表前應該刪掉關聯員工(已經建立外來鍵),如果資料庫伺服器發生錯誤,有乙個員工沒刪掉,那麼此時員工的部門表已經刪除,那麼就不符合完整性約束了,所以這樣的資料庫也就效能太差啦!

<3>隔離性(isolation):事務的隔離性是指多個使用者併發訪問資料庫時,乙個使用者的事務不能被其它使用者的事務所干擾,多個併發事務之間資料要相互隔離。

<4>永續性(durability):永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。

資料庫之事務

事務是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是個不可分割的工作單位。如果某一事務成功,則在該事務中進行的所有資料更改均會提交,成為資料庫中永久的組成部分。如果事務遇到錯誤,則必須取消或回滾,所有資料均被更改清除。1 原子性 atomicity 事務是資料庫的邏輯工...

資料庫之事務

概述 事務一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 特徵 事務具有4個基本特徵,分別是 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 duration 簡稱acid。原子性事務的原子性...

資料庫 之 事務

本文將以mysql為主分析 在mysql中只有使用了innodb資料庫引擎的資料庫或表才支援事務 事務處理可以用來維護資料庫的完整性,保證成批的sql語句要麼全部執行,要麼全部不執行 事務用來管理insert update delete語句。事務必須滿足4個條件acid a atomicity 原子...