开发者社区 > 数据库 > 数据仓库 > 正文

云数据仓库ADB INSERT INTO SELECT 对比INSERT OVERWRITE SEL

云数据仓库ADB INSERT INTO SELECT 对比INSERT OVERWRITE SELECT

展开
收起
嘟嘟嘟嘟嘟嘟 2024-05-15 11:50:37 53 0
1 条回答
写回答
取消 提交回答
  • INSERT INTO SELECT 和 INSERT OVERWRITE SELECT 都是用来插入数据的SQL语句,但它们的行为有所不同:

    INSERT INTO SELECT:
    这个语句是从一个查询结果中插入数据到一个表中。如果目标表中已有数据,新的数据会被追加到已有数据之后,不会删除原有的记录。这个操作相当于将查询结果集的内容“添加”到目标表中。

    INSERT OVERWRITE SELECT:
    此语句同样从查询结果中获取数据插入到表中,但在此之前,它会清空目标表(如果是分区表则清空指定分区)中的现有数据,然后再写入新的数据。这意味着此操作会“替换”而非追加数据,适用于需要更新整个表或特定分区数据的场景。

    总结来说,如果你需要在已有数据基础上增加新数据,应使用 INSERT INTO SELECT;而当你需要基于某个查询结果完全重写一个表或其分区的数据时,则应使用 INSERT OVERWRITE SELECT。
    此回答整理自钉群“云数据仓库ADB-开发者群”

    2024-05-15 12:48:25
    赞同 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 热门讨论

    热门文章

    相关电子书

    更多
    基于阿里云MaxCompute构建企业云数据仓库CDW的最佳实践建议 立即下载
    PostgresChina2018_陶征霖_新一代数据仓库OushuDB架构剖析 立即下载
    MaxCompute数据仓库数据转换实践 立即下载