Perl 中的 COMMIT 和 Rollback 操作


COMMIT 操作

Commit 操作向数据库发出信号,指示其完成更改,此操作后无法撤销任何更改。

这是一个调用 **commit** API 的简单示例。

$dbh->commit or die $dbh->errstr;

ROLLBACK 操作

如果您对所有更改不满意,或者在任何操作过程中遇到错误,可以使用 **rollback** API 撤销这些更改。

这是一个调用 rollback API 的简单示例。

$dbh->rollback or die $dbh->errstr;

事务开始

许多数据库都支持事务。这意味着您可以进行大量修改数据库的查询,但实际上没有任何更改。然后,最后,您发出特殊的 SQL 查询 **COMMIT**,所有更改将同时进行。或者,您可以发出查询 ROLLBACK,在这种情况下,所有更改都将被丢弃,数据库保持不变。

Perl DBI 模块提供了 **begin_work** API,它允许事务(通过关闭 AutoCommit)直到下一次调用 commit 或 rollback。在下一次 commit 或 rollback 之后,AutoCommit 将自动再次打开。

$rc = $dbh->begin_work or die $dbh->errstr;

AutoCommit 选项

如果您的事务很简单,您可以避免发出大量 commit 的麻烦。当您进行连接调用时,您可以指定 **AutoCommit** 选项,该选项将在每次成功的查询后执行自动 commit 操作。如下所示:

my $dbh = DBI->connect($dsn, $userid, $password, {AutoCommit => 1}) or die $DBI::errstr;

此处 AutoCommit 可以取值 1 或 0,其中 1 表示 AutoCommit 启用,0 表示 AutoCommit 禁用。

更新于:2019年12月2日

775 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.