和RDBMS一樣,OrientDB支援事務ACID屬性。 事務包括在資料庫管理系統內執行的工作單元。 在資料庫環境中維護事務有兩個主要原因。
預設情況下,資料庫事務必須遵循ACID屬性,例如Atomic,Consistent,Isolated和Durable屬性。 但OrientDB是一個符合ACID的資料庫,這意味著它不會牴觸或否定ACID的概念,但它在處理NoSQL資料庫時會改變它的看法。 看看ACID屬性如何與NoSQL資料庫一起使用。
資料庫事務可以通過使用Commit
和 Rollback
命令來實現。
提交意味著通過儲存對資料庫的所有更改來關閉事務。 回滾意味著將資料庫狀態恢復到您開啟事務的位置。以下語句是COMMIT
資料庫命令的基本語法。
COMMIT
註 - 只有在連線到特定資料庫並開始事務後,才能使用此命令。
範例
在本例中,將使用本教學前面章節中建立的名為demo
的相同資料庫。將看到提交事務的操作並使用事務來儲存記錄。
需要使用以下BEGIN
命令首先啟動事務。
orientdb {db = demo}> BEGIN
使用以下命令將記錄值為id = 12
和name = Maxsu
插入到Employee
表中。
orientdb> INSERT INTO employee (id, name) VALUES (12, 'Maxsu')
可以使用以下命令來提交事務。
orientdb> commit
如果此事務成功提交,將獲得以下輸出。
Transaction 2 has been committed in 4ms
回滾意味著將資料庫狀態恢復到您開啟事務的位置。
以下語句是ROLLBACK
資料庫命令的基本語法。
ROLLBACK
註 - 只有在連線到特定資料庫並開始事務後,才能使用此命令。
範例
在這個例子中,將使用本教學前面章節中建立的名為demo
的相同資料庫。 將看到回滾事務的操作並使用事務來儲存記錄。
先使用以下BEGIN
命令啟動事務。
orientdb {db = demo}> BEGIN
使用以下命令將記錄值為id = 12
和name = Maxsu
插入到employee
表中。
orientdb> INSERT INTO employee (id, name) VALUES (12, 'Maxsu')
可以使用以下命令來檢索employee
表中的記錄。
orientdb> SELECT FROM employee WHERE name LIKE '%su'
如果此命令成功執行,您將獲得以下輸出。
---+-------+--------------------
# | ID | name
---+-------+--------------------
0 | 12 | Maxsu
---+-------+--------------------
1 item(s) found. Query executed in 0.076 sec(s).
可以使用以下命令來回滾此事務。
orientdb> ROLLBACK
再次使用select
查詢語句從Employee
表中檢索相同的記錄。
orientdb> SELECT FROM employee WHERE name LIKE '%su'
如果此命令成功執行,您將獲得以下輸出。
0 item(s) found. Query executed in 0.037 sec(s).
可以看到,上面插入的資料已被回滾了,所以沒有查詢到相關記錄資訊。