码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • GBase8s数据库FOR UPDATE 子句


    当您打算更新由准备好的 SELECT 语句返回的值,当存取这些值时,请在 ESQL/C 应用中和在

    DB-Access 中使用 FOR UPDATE 子句。

    准备包含 FRO UPDATE 子句的 SELECT 语句,等同于准备不带有 FOR UPDATE 子句的 SELECT 语

    句,然后为准备好的语句声明 FOR UPDATE 游标。

    FOR UPDATE 关键字通知数据库服务器可能会有更新,导致它使用比随同 Select 游标更严格的

    锁。不带有此子句,您不可通过游标修改数据。您可指定哪些列可被更新。

    在您为 SELECT . . . FOR UPDATE 语句声明游标之后,您可使用带有 WHERE CURRENT OF 子句的

    UPDATE 或 DELETE 语句更新或删除当前选择了的行。关键字 CURRENT OF 引用最近存取了的行;

    它们替代在 WHERE 子句中的通常的条件表达式。要以特定的值更新行,您的程序可能包含诸如下

    列示例中的语句:

    EXEC SQL BEGIN DECLARE SECTION;

    char fname[ 16];

    char lname[ 16];

    EXEC SQL END DECLARE SECTION;

    . . .

    EXEC SQL connect to ‘stores_demo’;

    /* select statement being prepared contains a for update clause */

    EXEC SQL prepare x from ‘select fname, lname from customer for update’;

    EXEC SQL declare xc cursor for x;

    for (;😉

    {

    EXEC SQL fetch xc into $fname, $lname;

    if (strncmp(SQLSTATE, ‘00’, 2) != 0) break;

    printf(“%d %s %s\n”,cnum, fname, lname );

    if (cnum == 999) --update rows with 999 customer_num

    EXEC SQL update customer set fname = ‘rosey’ where current of xc;

    }

    EXEC SQL close xc;

    EXEC SQL disconnect current;

    SELECT . . . FOR UPDATE 语句,像 Update 游标一样,允许您执行那些单独使用 UPDATE 语句

    不可能执行的更新,因为对更新的决定以及新的数据项的值都可基于该行的原始内容。UPDATE

    语句不可查询正在被更新的表。

    注: 在游标的 FETCH 循环内部的正常的更新不可确保在 UPDATE 之后再次存取更新了的行。

    WHERE CURRENT OF 规范将 UPDATE 联系到 Update 游标,并确保每一行仅更新一次,通过在内部

    保持一个已被更新了的行的列表。这些行将不被 Update 游标再次存取。

  • 相关阅读:
    Webfunny大版本改造(mysql迁移至clickhouse)
    管道的读写特点和管道设置为非阻塞
    EN 13969防水用柔性薄板.沥青防潮薄板—CE认证
    【办公自动化】使用Python一键往Word文档的表格中填写数据(文末送书)
    基于TensorRT部署和C++推理目前最SOTA的图像降噪网络
    【MyBatis-Plus】CRUD 操作
    Linux权限理解以及shell理解
    taro 兼容支付宝小程序和微信小程序<六>-- 自定义密码或验证码输入框组件的input 自动获取焦点(ios支付宝小程序怎么隐藏input的光标)
    车载电子电器防水防尘等级介绍
    【ThreadLocal】Threadlocal的详细解释
  • 原文地址:https://blog.csdn.net/weixin_48486849/article/details/125413996
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号