MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务 SQL 语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务 SQL 语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3391字,纯文字阅读大概需要5分钟。
内容图文
XA 事务 SQL 语句要在 MySQL 中执行 XA 事务,请使用以下语句:
1. XA {START|BEGIN} xid [JOIN|RESUME]
2.
3. XA END xid [SUSPEND [FOR MIGRATE]]
4.
5. XA PREPARE xid
6.
7. XA COMMIT xid [ONE PHASE]
8.
9. XA ROLLBACK xid
10.
11. XA RECOVER [CONVERT XID]
对于 XA START,可以识别 JOIN 和 RESUME 子句,但不起作用。
对于 XA END,可以识别 SUSPEND [For MIGRATE] 子句,但不起作用。
每个 XA 语句都以 XA 关键字开头,并且大多数语句都需要 xid 值。xid 是 XA 事务标识符。它指示语句应用于哪个事务。xid 值由客户端提供,或由 MySQL 服务器生成。xid 值有一到三个部分:
1.xid: gtrid [, bqual [, formatID ]]
gtrid 是一个全局事务标识符,bqual 是一个分支限定符,formatID 是一个数字,用于标识 gtrid 和 bqual 值所使用的格式。如语法所示,bqual 和 formatID 是可选的。如果未指定 bqual 值,默认值为 ‘‘。如果未给定,formatID 默认值为 1。
gtrid 和 bqual 必须是字符字面量,每个字符的长度都不超过64个字节(不是字符)。可以用多种方式指定 gtrid 和 bqual。可以使用带引号的字符串 (‘ab‘)、十六进制字符串 (X‘6162‘, 0x6162) 或位值 (b‘nnnn‘)。
formatID 是无符号整数。
MySQL 服务器的底层 XA 支持例程以字节表示 gtrid 和 bqual 值。然而,当一个包含 XA 语句的 SQL 语句被解析时,服务器使用一些特定的字符集。为了安全起见,请将 gtrid 和 bqual 写成十六进制字符串。
xid 值通常由事务管理器生成。一个 TM 产生的值必须与其他 TM 产生的值不同。给定的 TM 必须能够识别 XA RECOVER 语句返回的值列表中的自己的 xid 值。
XA START xid 使用给定的 xid 值启动 XA 事务。每个 XA 事务必须有一个惟一的 xid 值,因此该值当前不能被另一个 XA 事务使用。使用 gtrid 和 bqual 值评估唯一性。必须使用与 XA START 语句中给定的值相同的 xid 值来指定 XA 事务的所有后续 XA 语句。如果使用这些语句,但指定的 xid 值与现有的 XA 事务不对应,则会发生错误。
同一全局事务可以有一个或多个 XA 事务。给定全局事务中的所有 XA 事务都必须在 xid 值中使用相同的 gtrid 值。因此,gtrid 值必须是全局唯一的,这样就不会混淆给定 XA 事务属于哪个全局事务。对于全局事务中的每个 XA 事务,xid 值的 bqual 部分必须是不同的。(bqual 值不同的要求是当前 MySQL XA 实现的一个限制。它不是 XA 规范的一部分。)
XA RECOVER 语句返回 MySQL 服务器上处于 PREPARED 状态的 XA 事务的信息。服务器上每个这样的 XA 事务都会包含在输出行中,而不管是哪个客户端启动的。
XA RECOVER 需要 XA_RECOVER_ADMIN 权限。此权限要求阻止用户发现除自己的事务外未完成的已准备好的 XA 事务的 XID 值。它不影响 XA 事务的正常提交或回滚,因为启动它的用户知道它的 XID。
XA RECOVER 输出行如下所示(例如,xid 值由 ‘abc‘, ‘def‘ 和 7 组成):
1. mysql> XA RECOVER;
2. +----------+--------------+--------------+--------+
3. | formatID | gtrid_length | bqual_length | data |
4. +----------+--------------+--------------+--------+
5. | 7 | 3 | 3 | abcdef |
6. +----------+--------------+--------------+--------+
输出列具有以下含义:
● formatID 是事务 xid 的 formatID 部分
● gtrid_length 是 xid 的 gtrid 部分的长度(以字节为单位)
● bqual_length 是 xid 的 bqual 部分的长度(以字节为单位)
● data 是 xid 的 gtrid 和 bqual 部分的组合
XID 值可能包含不可打印的字符。XA RECOVER 允许一个可选的 CONVERT XID 子句,以便客户端可以请求十六进制的 XID 值。
官方网址:
https://dev.mysql.com/doc/refman/8.0/en/xa-statements.html
MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务 SQL 语句
标签:字符 start 部分 strong prepare 识别 无符号 事务管理 回滚
本文系统来源:https://blog.51cto.com/15023289/2559526
内容总结
以上是互联网集市为您收集整理的MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务 SQL 语句全部内容,希望文章能够帮你解决MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务 SQL 语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。