Man page - set_transaction(7)

Manual

SET TRANSACTION

NAME
SYNOPSIS
DESCRIPTION 描 述
NOTES 注 意
COMPATIBILITY 兼 容 性
译 者


NAME

SET TRANSACTION - 设 置 当 前 事 务 的 特 性

SYNOPSIS

SET TRANSACTION
[ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ] [ READ WRITE | READ ONLY ]
SET SESSION CHARACTERISTICS AS TRANSACTION
[ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ] [ READ WRITE | READ ONLY ]

DESCRIPTION 描 述

SET TRANSACTION 命 令 为 当 前 事 务 设 置 特 性 。 它 对 后 面 的 事 务 没 有 影 响 。 SET SESSION CHARACTERISTICS 为 一 个 会 话 中 的 每 个 事 务 设 置 缺 省 的 隔 离 级 别 。 SET TRANSACTION 可 以 为 一 个 独 立 的 事 务 覆 盖 上 面 的 设 置 。

可 用 的 事 务 特 性 是 事 务 隔 离 级 别 和 事 务 访 问 模 式 ( 读 /写 或 者 只 读 ) 。

事 务 的 隔 离 级 别 决 定 一 个 事 务 在 同 时 存 在 其 它 并 行 运 行 的 事 务 时 它 能 够 看 到 什 么 数 据 。
READ COMMITTED

一 条 语 句 只 能 看 到 在 它 开 始 之 前 的 数 据 。 这 是 缺 省 。

SERIALIZABLE

当 前 的 事 务 只 能 看 到 在 这 次 事 务 第 一 条 查 询 或 者 修 改 数 据 的 语 句 执 行 之 前 的 数 据 。

Tip: 提 示 : 说 白 了 , serializable( 可 串 行 化 ) 意 味 着 两 个 事 务 将 把 数 据 库 保 持 在 同 一 个 状 态 , 就 好 象 这 两 个 事 务 是 严 格 地 按 照 先 后 顺 序 执 行 地 那 样 。

事 务 隔 离 级 别 在 事 务 中 第 一 个 数 据 修 改 语 句 ( SELECT , INSERT , DELETE , UPDATE , FETCH , COPY ) 执 行 之 后 就 不 能 再 次 设 置 。 参 阅 Chapter 12 ‘‘Concurrency Control’’ 获 取 有 关 事 务 隔 离 级 别 和 并 发 性 控 制 的 更 多 信 息 。

事 务 访 问 模 式 决 定 事 务 是 读 /写 还 是 只 读 。 读 /写 是 缺 省 。 如 果 一 个 事 务 是 只 读 , 而 且 写 入 的 表 不 是 临 时 表 , 那 么 下 面 的 SQL 命 令 是 不 允 许 的 : INSERT, UPDATE, DELETE, 和 COPY TO; 而 所 有 的 CREATE, ALTER, 和 DROP 命 令 ; COMMENT, GRANT, REVOKE, TRUNCATE; 和 EXPLAIN ANALYZE 和 EXECUTE 都 不 允 许 。 这 是 一 个 高 层 次 的 只 读 概 念 , 它 并 不 阻 止 对 磁 盘 的 写 入 。

NOTES 注 意

会 话 的 缺 省 事 务 隔 离 级 别 也 可 以 用 命 令

SET default_transaction_isolation = ’ value

以 及 在 配 置 文 件 里 设 置 。 参 考 Section 16.4 ‘‘Run-time Configuration’’ 获 取 更 多 信 息 。

COMPATIBILITY 兼 容 性

两 个 命 令 都 在 SQL 标 准 里 定 义 了 。 SQL 里 的 缺 省 事 务 隔 离 级 别 是 SERIALIZABLE; 在 PostgreSQL 里 , 缺 省 隔 离 级 别 是 READ COMMITED, 但 是 你 可 以 用 上 面 的 描 述 修 改 它 。 PostgreSQL 并 没 有 提 供 隔 离 级 别 READ UNCOMMITTED 和 REPEATABLE READ。 因 为 多 版 本 并 发 控 制 , SERIALIZABLE 级 别 并 非 真 正 的 可 串 行 化 。 参 阅 Chapter 12 ‘‘Concurrency Control’’ 获 取 细 节 。

在 SQL 标 准 里 还 有 另 外 一 种 事 务 特 性 可 以 用 这 些 命 令 设 置 : 诊 断 范 围 的 大 小 。 这 个 概 念 只 用 于 嵌 入 的 SQL。

译 者

Postgresql 中 文 网 站 何 伟 平 <laser@pgsqldb.org>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。
中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh