OrientDB - 事务
与 RDBMS 一样,OrientDB 支持事务 ACID 属性。事务包括在数据库管理系统内执行的工作单元。在数据库环境中维护事务有两个主要原因。
允许并发从故障中恢复,并在系统发生故障时保持数据库的一致性。
在并发访问数据库的程序之间提供隔离。
默认情况下,数据库事务必须遵循 ACID 属性,例如原子性、一致性、隔离性和持久性属性。但 OrientDB 是一个符合 ACID 的数据库,这意味着它不会与 ACID 概念相矛盾或否定 ACID,但它在处理 NoSQL 数据库时会改变其看法。看看 ACID 属性如何与 NoSQL 数据库一起工作。
原子性 −当您执行某些操作来更改数据库时,更改应该有效或整体失败。
一致 − 数据库应保持一致。
隔离 − 如果其他事务执行同时执行,则用户将无法看到并发执行中的记录。
持久 − 如果系统崩溃(硬件或软件),数据库本身应该能够进行备份。
可以使用提交和回滚命令来实现数据库事务。
Commit
提交意味着通过保存对数据库的所有更改来关闭事务。回滚意味着将数据库状态恢复到打开事务的点。
以下语句是 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 数据库命令的基本语法。
ROLLBACK
注意 − 只有在连接到特定数据库并开始事务后才能使用此命令。
示例
在此示例中,我们将使用在本教程的前面章节中创建的名为"demo"的同一数据库。我们将看到回滚事务的操作并使用事务存储记录。
您必须首先使用以下 BEGIN 命令启动事务。
orientdb {db = demo}> BEGIN
使用以下命令将记录插入到 employee 表中,其值为 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).