Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       BEGIN - 開始一個事務塊

SYNOPSIS

       BEGIN [ WORK | TRANSACTION ]

DESCRIPTION 描述

       BEGIN  初始化一個事務塊, 也就是說所有 BEGIN  命令後的用戶語句都將在一個事務裏面執行直到給
       出一個明確的  COMMIT   [commit(7)]   或者   ROLLBACK   [rollback(l)]   。   缺省時,(沒有
       BEGIN),PostgreSQL  以  "autocommit"   模式執行事務,也就是說,每個語句在其自身的事務中執
       行, 並且在語句結束的時候隱含地執行一個提交(如果執行成功,否則執行回滾)。

        在事務塊裏執行的語句很明顯地快得多, 因爲事務開始/提交(start/commit)需要大量的CPU和磁盤
       活動。  在一個 事務內部執行多條語句對於修改若干個相關的表的時候也是很有用的: 在所有相關的
       更新完成之前,其它會話看不到中間的狀態。

PARAMETERS 參數

       WORK

       TRANSACTION
               可選關鍵字。沒什麼作用。

NOTES 注意

       START TRANSACTION [start_transaction(7)] 有着和 BEGIN 一樣的功能。

        使用 COMMIT [commit(7)] 或 ROLLBACK [rollback(7)] 結束一個事務。

        在一個現有事務塊內部發出一個 BEGIN 將產生一個警告信息。 事務的狀態將不會被影響。

EXAMPLES 例子

        開始一個用戶事務:

       BEGIN;

COMPATIBILITY 兼容性

       BEGIN 是 PostgreSQL 語言的擴展。 在 SQL  標準中沒有明確的 BEGIN   的定義;事務初始化總是隱
       含的而且使用一個 COMMIT 或者 ROLLBACK 語句終止。

        許多關係型數據庫爲了方便提供一個自動提交(autocommit)特性。

        順便說一句,BEGIN  關鍵字在嵌入 SQL 裏用於不同的目的。 我們建議你在移植數據庫應用時仔細檢
       查事務的語義。

SEE ALSO 參見

       COMMIT [commit(7)], ROLLBACK [rollback(l)]

譯者

       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh