OrientDB - 交易


与 RDBMS 一样,OrientDB 支持事务 ACID 属性。事务包括在数据库管理系统内执行工作单元。在数据库环境中维护事务有两个主要原因。

  • 即使发生系统故障,也允许从故障中并发恢复并保持数据库一致。

  • 在同时访问数据库的程序之间提供隔离。

默认情况下,数据库事务必须遵循 ACID 属性,例如Atomics性、一致性、隔离性和持久性。但OrientDB是一个符合ACID的数据库,这意味着它并不矛盾或否定ACID的概念,但它在处理NoSQL数据库时改变了它的看法。了解 ACID 属性如何与 NoSQL 数据库一起使用。

Atomics- 当您执行某些操作来更改数据库时,更改应该整体有效或失败。

一致- 数据库应保持一致。

隔离- 如果其他事务执行同时执行,则用户将无法看到并发执行中的记录。

耐用- 如果系统崩溃(硬件或软件),数据库本身应该能够进行备份。

数据库事务可以通过使用Commit和Rollback命令来实现。

犯罪

提交意味着通过将所有更改保存到数据库来关闭事务。回滚意味着将数据库状态恢复到您打开事务时的状态。

以下语句是 COMMIT 数据库命令的基本语法。

COMMIT

注意- 仅在连接到特定数据库并开始事务后才能使用此命令。

例子

在此示例中,我们将使用我们在本教程前面的章节中创建的名为“demo”的相同数据库。我们将看到提交事务的操作以及使用事务存储记录的操作。

您需要首先使用以下 BEGIN 命令启动事务。

orientdb {db = demo}> BEGIN

使用以下命令将一条记录插入到员工表中,其值 id = 12 且 name = satish.P。

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

您可以使用以下命令来提交事务。

orientdb> commit

如果此事务成功提交,您将得到以下输出。

Transaction 2 has been committed in 4ms

回滚

回滚意味着将数据库状态恢复到您打开事务时的状态。

以下语句是 ROLLBACK 数据库命令的基本语法。

ROLLBACK

注意- 仅在连接到特定数据库并开始事务后才能使用此命令。

例子

在此示例中,我们将使用我们在本教程前面的章节中创建的名为“demo”的相同数据库。我们将看到回滚事务的操作并使用事务存储记录。

您必须首先使用以下 BEGIN 命令启动事务。

orientdb {db = demo}> BEGIN

使用以下命令将一条记录插入到员工表中,其值 id = 12 且 name = satish.P。

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

您可以使用以下命令来检索表employee 的记录。

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

如果该命令执行成功,您将得到以下输出。

---+-------+-------------------- 
 # | 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' 

如果回滚成功执行,您将在输出中找到 0 条记录。

0 item(s) found. Query executed in 0.037 sec(s).