GBASE南大通用分享,使用 BEGIN WORK 语句来启动事务

本文介绍了BEGINWORK语句作为事务单元的启动,其在支持事务日志的数据库中的作用,以及如何处理锁定、并发限制和GBase8sESQL/C中的特殊情况。提醒读者注意在正确上下文中使用和避免潜在错误。
摘要由CSDN通过智能技术生成

使用 BEGIN WORK 语句来启动事务(COMMIT WORK 或 ROLLBACK WORK 语句终止的一系 列数据库操作,数据库服务器将其作为单个工作单元)。该语句是 SQL ANSI/ISO 标准的扩展。 

  语法

用法 

  BEGIN WORK 语句只在支持事务日志记录的数据库中有效。该语句在 ANSI 兼容的数据库中无 效。

在事务锁定期间 UPDATE 、DELETE 、INSERT 或 MERGE 语句影响的每行将在整个事务中保 持锁定。包含许多这样的语句的事务或包含影响许多行的语句的事务,可超过您的操作系统或数据 库服务器对同步锁定数目施加的限制。

如果没有其他用户访问该表,您可以在开始事务后通过使用 LOCK TABLE 语句来避免锁定限制并减 少锁定开销。如同其它锁定一样,此表锁定在事务终止时释放。在 BEGIN WORK 的示例 的示例上 的事务包含一条 LOCK TABLE 语句。

重要: 仅当事务不在进行时发出 BEGIN WORK 语句。如果当在事务中时发出一个 BEGIN WORK 语 句,数据库服务器返回一条错误。 

 WORK 关键字是可选的。以下两条语句等价: 

  BEGIN; 

 BEGIN WORK; 

  在读取 SQL 源代码时忽略 WORK 关键字,不要混淆 SQL 的 BEGIN 语句和 SPL 关键字 BEGIN ,它们和 END 关键字一起可用于 SPL 例程内定义语句块的分隔符。 

  在 GBase 8s ESQL/C 中,如果在 WHENEVER 语句调用的 UDR 中使用 BEGIN WORK 语句, 则应在 ROLLBACK WORK 语句之前指定 WHENEVER SQLERROR CONTINUE 和 WHENEVER SQLWARNING CONTINUE 。如果 ROLLBACK WORK 语句碰到错误或者警告,则这些语句可防 止程序发生无限循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值