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.