开发者社区> 问答> 正文

OceanBase数据库多字段 update select 的语法是怎么写啊?拿一张万级小标去更新

OceanBase数据库多字段 update select 的语法是怎么写啊?拿一张万级小标去更新 一张亿级大表,怎么样可以提升更新的执行效率?

展开
收起
真的很搞笑 2023-07-13 08:11:51 283 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 OceanBase 数据库中,多字段 update select 语法可以使用如下的格式来编写:

    Copy
    UPDATE table_name1 SET column1 = (SELECT column2 FROM table_name2 WHERE condition) WHERE condition;
    其中,table_name1 是需要更新的表名,column1 是要更新的字段名,table_name2 是需要查询的表名,column2 是需要查询的字段名,condition 是查询条件。

    例如,如果您需要将表 table1 中的字段 col1、col2、col3 分别更新为表 table2 中对应的字段 col2、col3、col4 的值,可以使用如下的 SQL 语句:

    sql_more
    Copy
    UPDATE table1 SET col1 = (SELECT col2 FROM table2 WHERE id = table1.id), col2 = (SELECT col3 FROM table2 WHERE id = table1.id), col3 = (SELECT col4 FROM table2 WHERE id = table1.id) WHERE id BETWEEN 1 AND 10000;
    该 SQL 语句将对 id 字段为 1 到 10000 的记录进行更新,将 col1、col2、col3 字段的值分别更新为表 table2 中对应记录的 col2、col3、col4 字段的值。

    2023-07-13 20:27:26
    赞同 展开评论 打赏
  • 在OceanBase数据库中,您可以使用以下语法进行多字段的更新操作:

    UPDATE 表名
    SET 字段1 =1, 字段2 =2, ...
    WHERE 条件;
    

    具体到您提到的万级小表的例子,假设有一张名为 my_table 的表,并且需要对其中的字段进行更新,可以按照以下方式编写SQL语句:

    UPDATE my_table
    SET 字段1 = 新值1, 字段2 = 新值2, ...
    WHERE 条件;
    
    2023-07-13 11:16:47
    赞同 展开评论 打赏
  • 合理分区加并行dml,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-07-13 09:14:22
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载