3B000 — savepoint_exception(保存点异常)
保存点异常的类别码,具体失败见 3B001。
英文手册覆盖始于 PostgreSQL 8.1. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- aliases
- 未知
- class name
- Savepoint Exception
- condition name
- savepoint_exception
- lang
- en
- sqlstate
- 3B000
版本定义 PG 18
3B000 — savepoint_exception(保存点异常)
速览 {#at-a-glance}
3B000 是保存点异常类别的定义。固定核心调用扫描解析到的是更具体的缺失保存点路径 3B001,没有独立的通用 3B000 抛出点。诊断保存点失败时应使用服务器实际给出的具体 SQLSTATE;本页不编造类别级 RAISE 案例。
含义 {#meaning}
3B000 是 3B 类的保存点异常条件。固定扫描解析到具体的缺失保存点码 3B001,没有独立的通用类码核心抛出点。因此服务器给出具体码时,应按 3B001 诊断找不到的保存点名称。
诊断 {#diagnosis}
保存请求的保存点名称、是否存在显式事务,以及标记是否已释放或属于另一层嵌套。先读取服务器给出的具体 SQLSTATE:没有事务块时 ROLLBACK TO SAVEPOINT 是 25P01;显式块中缺少标记,在选定源码中由 3B001 表示。本页没有独立的自然运行案例。
处理 {#response}
按具体错误选择边界:先开启事务再创建保存点;显式事务失败后先回滚,再建立新标记。不要伪造 3B000 的重试或使用 CASCADE;本页保持定义边界,缺失名称请看有源码依据的 3B001 路径。
版本 {#versions}
上面的锁定事实表记录项目快照范围内的目录存在情况。固定源码证据只覆盖下面声明的路径;不能仅从定义推导精确行为引入版本或更广的运行覆盖。
相关 {#related}
具体的缺失保存点路径见3B001 保存点说明无效。
来源 {#sources}
src.errcodes.18.6(SHA-2566e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba)- 固定调用扫描
src.calls.REL_18_6(SHA-2569ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf)
比较版本
SQLSTATE 证据与已记录的运行版本
cases · savepoint_exception_boundary
{
"assertions": [],
"case_id": "savepoint_exception_boundary",
"cleanup": "Drop the case schema with an owner connection.",
"has_snippet": false,
"position": 0,
"preconditions": [
"A runner-owned disposable target is provisioned."
],
"repair": "Use the specific savepoint condition and transaction boundary supplied by the server; do not manufacture a class-level RAISE.",
"trigger": "No generic 3B000 trigger is executed; the specific invalid-savepoint path is covered by 3B001.",
"versions": [
"10",
"18"
]
}claims · identity
{
"claim_id": "identity",
"limits": "This records the protocol definition and does not imply a natural PostgreSQL throw path.",
"method": "Read the fixed errcodes.txt row and macro mapping.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "3B000 is the savepoint_exception condition in Class 3B."
}claims · no-safe-natural-case
{
"claim_id": "no-safe-natural-case",
"limits": "This is a bounded source/definition result, not proof that every extension or injected fault cannot emit the code.",
"method": "Review the fixed call scan for resolved 3B000 call groups and reject artificial RAISE or relabeling.",
"position": 1,
"runtime": [],
"sources": [
"src.calls.REL_18_6"
],
"statement": "No distinct safe natural core runtime case for 3B000 was selected from the fixed call scan."
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 1,
"sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
"source_id": "src.calls.REL_18_6",
"tag": "",
"url": ""
}来源引用
定义来源
center · PostgreSQL 18 · english-manuals:56b6eb48ac32e59c099b07c10c9b8e17aaf2aa37926bea4571c62184a403ae17
正文语言: zh-Hans · english-manuals:56b6eb48ac32e59c099b07c10c9b8e17aaf2aa37926bea4571c62184a403ae17