新聞中心
SQLite是D.Richard Hipp用C語(yǔ)言編寫(xiě)的開(kāi)源嵌入式數(shù)據(jù)庫(kù)引擎。它支持大多數(shù)的SQL92標(biāo)準(zhǔn),并且可以在所有主要的操作系統(tǒng)上運(yùn)行。

錯(cuò)那網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
事務(wù)的屬性
-
1.事務(wù)(Transaction)具有以下四個(gè)標(biāo)準(zhǔn)屬性,通常根據(jù)首字母縮寫(xiě)為 ACID:
-
2.原子性(Atomicity):確保工作單位內(nèi)的所有操作都成功完成,否則,事務(wù)會(huì)在出現(xiàn)故障時(shí)終止,之前的操作也會(huì)回滾到以前的狀態(tài)。
-
3.一致性(Consistency):確保數(shù)據(jù)庫(kù)在成功提交的事務(wù)上正確地改變狀態(tài)。
-
4.隔離性(Isolation):使事務(wù)操作相互獨(dú)立和透明。
-
5.持久性(Durability):確保已提交事務(wù)的結(jié)果或效果在系統(tǒng)發(fā)生故障的情況下仍然存在。
事務(wù)控制
使用下面的命令來(lái)控制事務(wù):
-
1.BEGIN TRANSACTION:開(kāi)始事務(wù)處理。
-
2.COMMIT:保存更改,或者可以使用 END TRANSACTION 命令。
-
3.ROLLBACK:回滾所做的更改。
事務(wù)控制命令只與 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他們不能在創(chuàng)建表或刪除表時(shí)使用,因?yàn)檫@些操作在數(shù)據(jù)庫(kù)中是自動(dòng)提交的。
BEGIN TRANSACTION 命令
事務(wù)(Transaction)可以使用 BEGIN TRANSACTION 命令或簡(jiǎn)單的 BEGIN 命令來(lái)啟動(dòng)。此類(lèi)事務(wù)通常會(huì)持續(xù)執(zhí)行下去,直到遇到下一個(gè) COMMIT 或 ROLLBACK 命令。不過(guò)在數(shù)據(jù)庫(kù)關(guān)閉或發(fā)生錯(cuò)誤時(shí),事務(wù)處理也會(huì)回滾。以下是啟動(dòng)一個(gè)事務(wù)的簡(jiǎn)單語(yǔ)法:
BEGIN;
or
BEGIN TRANSACTION;
COMMIT 命令
COMMIT 命令是用于把事務(wù)調(diào)用的更改保存到數(shù)據(jù)庫(kù)中的事務(wù)命令。 COMMIT 命令把自上次 COMMIT 或 ROLLBACK 命令以來(lái)的所有事務(wù)保存到數(shù)據(jù)庫(kù)。 COMMIT 命令的語(yǔ)法如下:
COMMIT;
or
END TRANSACTION;
ROLLBACK 命令
ROLLBACK 命令是用于撤消尚未保存到數(shù)據(jù)庫(kù)的事務(wù)的事務(wù)命令。
ROLLBACK 命令只能用于撤銷(xiāo)自上次發(fā)出 COMMIT 或 ROLLBACK 命令以來(lái)的事務(wù)。
ROLLBACK 命令的語(yǔ)法如下:
ROLLBACK;
實(shí)例
假設(shè) COMPANY 表有以下記錄:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
現(xiàn)在,讓我們開(kāi)始一個(gè)事務(wù),并從表中刪除 age = 25 的記錄,最后,我們使用 ROLLBACK 命令撤消所有的更改。
sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> ROLLBACK;
檢查 COMPANY 表,仍然有以下記錄:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
現(xiàn)在,讓我們開(kāi)始另一個(gè)事務(wù),從表中刪除 age = 25 的記錄,最后我們使用 COMMIT 命令提交所有的更改。
sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> COMMIT;
檢查 COMPANY 表,有以下記錄:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
分享標(biāo)題:講解一下SQLite中的事務(wù)
鏈接分享:http://www.5511xx.com/article/djhieei.html


咨詢(xún)
建站咨詢(xún)
