SQLite-進階-事務(Transaction)

來源:互聯網
上載者:User

標籤:

事務(Transaction)

事務(Transaction)是一個對資料庫執行工作單元。事務(Transaction)是以邏輯順序完成的工作單位或序列,可以是由使用者手動操作完成,也可以是由某種資料庫程式自動完成。

事務(Transaction)是指一個或多個更改資料庫的擴充。例如,如果您正在建立一個記錄或者更新一個記錄或者從表中刪除一個記錄,那麼您正在該表上執行事務。重要的是要控制事務以確保資料的完整性和處理資料庫錯誤。

實際上,您可以把許多的 SQLite 查詢聯合成一組,把所有這些放在一起作為事務的一部分進行執行。 事務的屬性

事務(Transaction)具有以下四個標準屬性,通常根據首字母縮寫為 ACID:

  • 原子性(Atomicity):確保工作單位內的所有操作都成功完成,否則,事務會在出現故障時終止,之前的操作也會復原到以前的狀態。

  • 一致性(Consistency):確保資料庫在成功提交的事務上正確地改變狀態。

  • 隔離性(Isolation):使事務操作相互獨立和透明。

  • 持久性(Durability):確保已提交事務的結果或效果在系統發生故障的情況下仍然存在。
事務控制

使用下面的命令來控制事務:

  • BEGIN TRANSACTION:開始交易處理。

  • COMMIT:儲存更改,或者可以使用 END TRANSACTION 命令。

  • ROLLBACK:復原所做的更改。

事務控制命令只與 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他們不能在建立表或刪除表時使用,因為這些操作在資料庫中是自動認可的。

----------------------------------------------------------------------

舉例:

1:開啟事物--事物處理--事物提交

sqlite> BEGIN TRANSACTION;
sqlite> INSERT INTO COMPANY VALUES(6,‘LiF‘,45,‘Home‘,600000.0);
sqlite> select*from COMPANY;
1|LiA|20|China|100000.0
2|LiB|25|America|200000.0
3|LiC|30|earth|300000.0
5|LIE|40|Ground|500000.0
6|LiF|45|Home|600000.0
sqlite> COMMIT TRANSACTION;
sqlite> select*from COMPANY;
1|LiA|20|China|100000.0
2|LiB|25|America|200000.0
3|LiC|30|earth|300000.0
5|LIE|40|Ground|500000.0
6|LiF|45|Home|600000.0

-------------------------------------------------------------------

2:開啟事物--事物處理--事物處理復原(事物處理取消)

sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE COMPANY(            ID        INT   PRIMARY KEY NOT NULL,           NAME      TEXT  NOT NULL,           AGE       INT   NOT NULL,           ADDRESS   TEXT  ,           SALARY    REAL  );
INSERT INTO "COMPANY" VALUES(1,‘LiA‘,20,‘China‘,100000.0);
INSERT INTO "COMPANY" VALUES(2,‘LiB‘,25,‘America‘,200000.0);
INSERT INTO "COMPANY" VALUES(3,‘LiC‘,30,‘earth‘,300000.0);
COMMIT;
sqlite> BEGIN TRANSACTION;    
sqlite> INSERT INTO COMPANY VALUES(4,‘LiC‘,35,‘Air‘,400000.0);
sqlite> select*from COMPANY;
1|LiA|20|China|100000.0
2|LiB|25|America|200000.0
3|LiC|30|earth|300000.0
4|LiC|35|Air|400000.0
sqlite> ROLLBACK TRANSACTION;
sqlite> select*from COMPANY;
1|LiA|20|China|100000.0
2|LiB|25|America|200000.0
3|LiC|30|earth|300000.0
sqlite> 

SQLite-進階-事務(Transaction)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.