OrientDB事務

2018-12-24 10:58 更新

像RDBMS,OrientDB支持事務ACID屬性。交易包括在數據庫管理系統內執(zhí)行的工作單元。在數據庫環(huán)境中維護事務有兩個主要原因。
允許從故障中并發(fā)恢復,并保持數據庫一致,即使在系統故障的情況下。
在同時訪問數據庫的程序之間提供隔離。
默認情況下,數據庫事務必須遵循ACID屬性,例如Atomic,Consistent,Isolated和Durable屬性。但OrientDB是一個ACID兼容的數據庫,這意味著它不矛盾或否定概念ACID,但它改變了它的感知,同時處理NoSQL數據庫??纯碅CID屬性如何與NoSQL數據庫一起工作。
Atomic? 當你做一些事情來改變數據庫時,改變應該作為一個整體工作或失敗。
Consistent?數據庫應保持一致。
Isolated? 如果其他事務執(zhí)行同時執(zhí)行,則用戶將無法在并發(fā)執(zhí)行中查看記錄。
Durable? 如果系統崩潰(硬件或軟件),數據庫本身應該能夠進行備份。
數據庫事務可以通過使用提交和回滾命令來實現。

承諾

提交意味著通過將所有更改保存到數據庫來關閉事務?;貪L意味著將數據庫狀態(tài)恢復到打開事務的點。
以下語句是COMMIT數據庫命令的基本語法。

COMMIT

注意:只有在連接到特定數據庫和開始事務之后,才能使用此命令。

在本例中,我們將使用我們在本教程前面章節(jié)中創(chuàng)建的名為“demo”的相同數據庫。 我們將看到提交事務的操作,并使用事務存儲記錄。
您需要首先使用以下BEGIN命令啟動事務。

orientdb {db = demo}> BEGIN

使用以下命令將記錄插入到值為id = 12和name = satish.P的employee表中。

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

您可以使用下面的命令來提交事務。

orientdb> commit

如果這個交易成功提交,您會得到下面的輸出。

Transaction 2 has been committed in 4ms

回滾

回滾意味著將數據庫狀態(tài)恢復到打開事務的點。
以下語句是ROLLBACK數據庫命令的基本語法。

ROLLBACK

注意:只有在連接到特定數據庫和開始事務之后,才能使用此命令。

在本例中,我們將使用我們在本教程前面章節(jié)中創(chuàng)建的名為“demo”的相同數據庫。 我們將看到回滾事務的操作,并使用事務存儲記錄。
您必須首先使用以下BEGIN命令啟動事務。

orientdb {db = demo}> BEGIN

使用以下命令將記錄插入到值為id = 12和name = satish.P的employee表中。

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

您可以使用以下命令檢索表employee的記錄。

orientdb> SELECT FROM employee WHERE name LIKE '%.P'

如果此命令成功執(zhí)行,您將獲得以下輸出。

---+-------+-------------------- 
 # | ID   | name 
---+-------+-------------------- 
 0 | 12   | satish.P 
---+-------+-------------------- 
1 item(s) found. Query executed in 0.076 sec(s). 

您可以使用下面的命令來回滾該事務。

orientdb> ROLLBACK

再次檢查選擇查詢以從Employee表中檢索相同的記錄。

orientdb> SELECT FROM employee WHERE name LIKE '%.P' 

如果成功執(zhí)行回滾,您將在輸出中找到0條記錄。

0 item(s) found. Query executed in 0.037 sec(s). 
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號