日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解SQLite 事務(wù)

說到事務(wù)一定會提到ACID,所謂事務(wù)的原子性,一致性,隔離性和持久性。對于一個數(shù)據(jù)庫而言,通常通過并發(fā)控制和故障恢復(fù)手段來保證事務(wù)在正常和異常情況下的ACID特性。sqlite也不例外,雖然簡單,依然有自己的并發(fā)控制和故障恢復(fù)機(jī)制。

事務(wù)的屬性

  • 1.事務(wù)(Transaction)具有以下四個標(biāo)準(zhǔn)屬性,通常根據(jù)首字母縮寫為 ACID:
  • 2.原子性(Atomicity):確保工作單位內(nèi)的所有操作都成功完成,否則,事務(wù)會在出現(xiàn)故障時終止,之前的操作也會回滾到以前的狀態(tài)。
  • 3.一致性(Consistency):確保數(shù)據(jù)庫在成功提交的事務(wù)上正確地改變狀態(tài)。
  • 4.隔離性(Isolation):使事務(wù)操作相互獨立和透明。
  • 5.持久性(Durability):確保已提交事務(wù)的結(jié)果或效果在系統(tǒng)發(fā)生故障的情況下仍然存在。

事務(wù)控制

使用下面的命令來控制事務(wù):

  • 1.BEGIN TRANSACTION:開始事務(wù)處理。
  • 2.COMMIT:保存更改,或者可以使用 END TRANSACTION 命令。
  • 3.ROLLBACK:回滾所做的更改。

事務(wù)控制命令只與 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他們不能在創(chuàng)建表或刪除表時使用,因為這些操作在數(shù)據(jù)庫中是自動提交的。

BEGIN TRANSACTION 命令

事務(wù)(Transaction)可以使用 BEGIN TRANSACTION 命令或簡單的 BEGIN 命令來啟動。此類事務(wù)通常會持續(xù)執(zhí)行下去,直到遇到下一個 COMMIT 或 ROLLBACK 命令。不過在數(shù)據(jù)庫關(guān)閉或發(fā)生錯誤時,事務(wù)處理也會回滾。以下是啟動一個事務(wù)的簡單語法:

BEGIN;
or
BEGIN TRANSACTION;

COMMIT 命令

COMMIT 命令是用于把事務(wù)調(diào)用的更改保存到數(shù)據(jù)庫中的事務(wù)命令。 COMMIT 命令把自上次 COMMIT 或 ROLLBACK 命令以來的所有事務(wù)保存到數(shù)據(jù)庫。 COMMIT 命令的語法如下:

COMMIT;
or
END TRANSACTION;

ROLLBACK 命令

ROLLBACK 命令是用于撤消尚未保存到數(shù)據(jù)庫的事務(wù)的事務(wù)命令。

ROLLBACK 命令只能用于撤銷自上次發(fā)出 COMMIT 或 ROLLBACK 命令以來的事務(wù)。

ROLLBACK 命令的語法如下:

ROLLBACK;

實例

假設(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)在,讓我們開始一個事務(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)在,讓我們開始另一個事務(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

分享文章:詳解SQLite 事務(wù)
URL網(wǎng)址:http://www.dlmjj.cn/article/dpspdeh.html