

Share Dialog
Share Dialog

Subscribe to Breezeandmoon

Subscribe to Breezeandmoon
SQL 事务定义了要针对数据库执行的工作单元,由一个或多个操作组成,可以按定义的顺序执行并保证完全成功或完全失败 - 这意味着所有操作要么一起成功,要么一起失败,并且没有中间过程状态是允许的。
让我们看一个交易示例:

事务工作单元位于和语句中,并具有三个操作:BEGINCOMMIT
询问TABLE_A
插入TABLE_B
更新TABLE_A
如果由于某种原因步骤3中的更新失败,那么步骤2中的插入也会失败。所有操作都将作为一个单元成功或失败。
可以使用三个 SQL 命令关键字来管理事务:
BEGIN- 定义事务的开始。 a 之后和 a 之前的所有 SQL 命令将被视为单个工作单元BEGINCOMMIT
COMMIT- 定义事务的结束。指定事务中的所有 SQL 命令应一起“提交”(即执行)
ROLLBACK- 撤消自上次指定或命令以来执行的所有更新(即 DML)操作COMMITROLLBACK
事务通过 MVCC(多版本并发控制)支持,这是一种控制并发访问的数据一致性的方法。换句话说,MVCC 是一种方法,多个用户可以同时操作相同的数据,而不会将该数据设置为任何一个用户不希望的值。 MVCC 实现了快照隔离,这可以确保并发事务始终看到所访问数据的一致快照。
当事务开始时,它将收到一致的数据快照,只有它可以读取和更新该数据。执行的任何更新都将根据其他并发事务进行检查;如果在同一数据条目上检测到另一个更新,则事务将失败。否则,只有当事务成功并提交时,更新才会变得可见。
为了在表上启用事务支持,您必须打开快照隔离。这可以通过 DDL 命令中的标志来完成:ATOMICITYCREATE TABLE

为了执行事务,您必须通过DML REST API 端点在单个 API 请求中提交完整的事务文本。事务必须格式正确,并包含开头的命令和结尾的命令。BEGINCOMMIT
例如,SQL 文本应如下所示:

SQL 事务定义了要针对数据库执行的工作单元,由一个或多个操作组成,可以按定义的顺序执行并保证完全成功或完全失败 - 这意味着所有操作要么一起成功,要么一起失败,并且没有中间过程状态是允许的。
让我们看一个交易示例:

事务工作单元位于和语句中,并具有三个操作:BEGINCOMMIT
询问TABLE_A
插入TABLE_B
更新TABLE_A
如果由于某种原因步骤3中的更新失败,那么步骤2中的插入也会失败。所有操作都将作为一个单元成功或失败。
可以使用三个 SQL 命令关键字来管理事务:
BEGIN- 定义事务的开始。 a 之后和 a 之前的所有 SQL 命令将被视为单个工作单元BEGINCOMMIT
COMMIT- 定义事务的结束。指定事务中的所有 SQL 命令应一起“提交”(即执行)
ROLLBACK- 撤消自上次指定或命令以来执行的所有更新(即 DML)操作COMMITROLLBACK
事务通过 MVCC(多版本并发控制)支持,这是一种控制并发访问的数据一致性的方法。换句话说,MVCC 是一种方法,多个用户可以同时操作相同的数据,而不会将该数据设置为任何一个用户不希望的值。 MVCC 实现了快照隔离,这可以确保并发事务始终看到所访问数据的一致快照。
当事务开始时,它将收到一致的数据快照,只有它可以读取和更新该数据。执行的任何更新都将根据其他并发事务进行检查;如果在同一数据条目上检测到另一个更新,则事务将失败。否则,只有当事务成功并提交时,更新才会变得可见。
为了在表上启用事务支持,您必须打开快照隔离。这可以通过 DDL 命令中的标志来完成:ATOMICITYCREATE TABLE

为了执行事务,您必须通过DML REST API 端点在单个 API 请求中提交完整的事务文本。事务必须格式正确,并包含开头的命令和结尾的命令。BEGINCOMMIT
例如,SQL 文本应如下所示:

<100 subscribers
<100 subscribers
No activity yet