codecamp

OrientDB事务

像RDBMS,OrientDB支持事务ACID属性。交易包括在数据库管理系统内执行的工作单元。在数据库环境中维护事务有两个主要原因。
允许从故障中并发恢复,并保持数据库一致,即使在系统故障的情况下。
在同时访问数据库的程序之间提供隔离。
默认情况下,数据库事务必须遵循ACID属性,例如Atomic,Consistent,Isolated和Durable属性。但OrientDB是一个ACID兼容的数据库,这意味着它不矛盾或否定概念ACID,但它改变了它的感知,同时处理NoSQL数据库。看看ACID属性如何与NoSQL数据库一起工作。
Atomic− 当你做一些事情来改变数据库时,改变应该作为一个整体工作或失败。
Consistent−数据库应保持一致。
Isolated− 如果其他事务执行同时执行,则用户将无法在并发执行中查看记录。
Durable− 如果系统崩溃(硬件或软件),数据库本身应该能够进行备份。
数据库事务可以通过使用提交和回滚命令来实现。

承诺

提交意味着通过将所有更改保存到数据库来关闭事务。回滚意味着将数据库状态恢复到打开事务的点。
以下语句是COMMIT数据库命令的基本语法。

COMMIT

注意:只有在连接到特定数据库和开始事务之后,才能使用此命令。

在本例中,我们将使用我们在本教程前面章节中创建的名为“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

回滚

回滚意味着将数据库状态恢复到打开事务的点。
以下语句是ROLLBACK数据库命令的基本语法。

ROLLBACK

注意:只有在连接到特定数据库和开始事务之后,才能使用此命令。

在本例中,我们将使用我们在本教程前面章节中创建的名为“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'

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

---+-------+-------------------- 
 # | 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). 
OrientDB指数
OrientDB挂钩
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }