Man page - begin(7)

Manual

BEGIN

NAME
SYNOPSIS
DESCRIPTION 描 述
PARAMETERS 引 數
NOTES 注 意
EXAMPLES 例 子
COMPATIBILITY 相 容 性
SEE ALSO 參 見
譯 者


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