详情页标题前

阿里云RDS数据库批量更新、删除或插入数据-云淘科技

详情页1

批量操作可以减少数据库与应用程序的交互次数,提高数据处理的吞吐量。本文将通过示例介绍如何批量插入、更新和删除数据。

批量插入数据

您可以通过如下四种方法进行批量插入数据。

以下示例中使用的测试表tbl1的建表语句如下:

CREATE TABLE tbl1 (
    id SERIAL PRIMARY KEY,
    info TEXT,
    crt_time TIMESTAMP
);

方式一:使用INSERT INTO … SELECT

  • 示例语句

    -- 向tbl1表中批量插入数据
    INSERT INTO tbl1 (id, info ,crt_time) SELECT GENERATE_SERIES(1,10000),'test',NOW(); 
    
    -- 查询数据量
    SELECT COUNT(*) FROM tbl1;
  • 返回结果

       count     
      -------    
       10000    
      (1 row)

方式二:使用VALUES(),(),…();

  • 示例语句

    -- 向tbl1表中批量插入数据
    INSERT INTO tbl1 (id,info,crt_time) VALUES (1,'test',NOW()), (2,'test2',NOW()), (3,'test3',NOW());
    
    -- 查询数据量
    SELECT COUNT(*) FROM tbl1;
  • 返回结果

       count     
      -------    
           3    
      (1 row)

方式三:使用BEGIN; …多条INSERT…; END;

说明

严格来说,此方式不属于批量,但可以减少事务提交时的同步等待,同样可以提升性能。

  • 示例语句

    -- 向tbl1表中批量插入数据
    BEGIN;
    INSERT INTO tbl1 (id,info,crt_time) VALUES (1,'test',NOW()); 
    INSERT INTO tbl1 (id,info,crt_time) VALUES (2,'test2',NOW());
    INSERT INTO tbl1 (id,info,crt_time) VALUES (3,'test3',NOW());
    END; 
    
    -- 查询数据量
    SELECT COUNT(*) FROM tbl1;
  • 返回结果

       count     
      -------    
           3    
      (1 row)

方式四:使用COPY协议

说明

COPY协议与INSERT协议不一样,更加精简,插入效率高。

  • 示例语句

    -- 从标准输入流中读取数据,并将数据复制到tbl1表中。
    COPY tbl1 FROM stdin;
    
    -- 输入第一条数据
    1    'test'  '2023-01-01'
    -- 输入第二条数据
    2    'test1' '2023-02-02'
    -- 结束
    \.
    
    -- 查询数据量
    SELECT COUNT(*) FROM tbl1;
  • 返回结果

       count     
      -------    
           2    
      (1 row)

    说明

    不同的语言驱动,对应的COPY接口不同,请参见如下文档:

    • PostgreSQL JDBC Driver – JDBC 4.2 9.4.1209 API

    • PostgreSQL 9.6.2 Documentation — Functions Associated with the COPY Command

批量更新数据

示例语句

-- 批量更新数据
UPDATE tbl1 SET info=tmp.info from (VALUES (1,'new1'),(2,'new2'),(6,'new6')) AS tmp (id,info) WHERE tbl1.id=tmp.id; 

-- 查询表数据
SELECT * FROM tbl1; 

返回结果

 id |     info     |          crt_time            
----+--------------+----------------------------  
  3 | hello        | 2017-04-24 15:31:49.14291  
  4 | digoal0123   | 2017-04-24 15:42:50.912887  
  5 | hello digoal | 2017-04-24 15:57:29.622045  
  1 | new1         | 2017-04-24 15:58:55.610072  
  2 | new2         | 2017-04-24 15:28:20.37392  
  6 | new6         | 2017-04-24 15:59:12.265915  
(6 rows)

批量删除数据

  • 批量清楚部分表数据

    • 示例语句

      -- 批量删除数据
      DELETE FROM tbl1 USING (VALUES (3),(4),(5)) AS tmp(id) WHERE tbl1.id=tmp.id; 
      
      -- 查询表数据
      SELECT * FROM tbl1;
    • 返回结果

       id |  info   |          crt_time            
      ----+---------+----------------------------  
        1 | new1    | 2017-04-24 15:58:55.610072  
        2 | new2    | 2017-04-24 15:28:20.37392  
        6 | new6    | 2017-04-24 15:59:12.265915
  • 清除全表数据,建议您使用TRUNCATE。

    • 示例语句

      -- 设置锁超时时间
      SET lock_timeout = '1s';
      
      -- 清空名为tbl1的表中的所有数据
      TRUNCATE tbl1;
      
      -- 查询表数据
      SELECT * FROM tbl1;
    • 返回结果

      %ignore_pre_15%

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/167072.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库ModifyDBInstanceAutoUpgradeMinorVersion – 修改RDS升级内核小版本的方式-云淘科技

    该接口用于修改RDS MySQL或RDS PostgreSQL实例升级小版本的方式。 接口说明 适用引擎 RDS MySQL RDS PostgreSQL 相关功能文档 注意 使用该接口前,请仔细阅读功能文档,确保完全了解使用接口的前提条件及使用后造成的影响后,再进行操作。 RDS MySQL修改自动升级设置 RDS PostgreSQL修改自动升级设置 调…

    阿里云数据库 2023年12月9日
  • 阿里云日志服务SLS预测与异常检测函数-云淘科技

    预测与异常检测函数通过预测时序曲线、寻找预测曲线和实际曲线之间误差的Ksigma与分位数等特性进行异常检测。 关于函数的算法及原理请参见: LOG机器学习介绍(01):时序统计建模 LOG机器学习介绍(03):时序异常检测建模 LOG机器学习介绍(05):时间序列预测 LOG机器学习最佳实战:时序异常检测和报警 函数列表 函数 说明 ts_predicate…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS控制台首页-云淘科技

    日志服务控制台首页提供日志应用、接入数据、Project列表、常用文档、资源报表、热门应用、新功能介绍、我的关注和联系我们等信息。 日志应用 日志服务提供的日志应用类型如下: 云产品Lens 智能运维 审计与安全 商业分析 伙伴计划 社会公益 其他 更多信息,请参见应用中心(App)。 接入数据 日志服务支持接入的数据源类型如下: 云产品 自定义代码 自建开…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS什么是日志服务告警-云淘科技

    日志服务告警是一站式的告警监控、降噪、事务管理、通知分派的智能运维平台。 产品架构 日志服务告警系统由告警监控、告警管理、通知(行动)管理等子系统组成,具体架构如下图所示: 日志服务告警功能主要包含以下功能组件: 日志存储(Logstore):日志服务提供Logstore用于存储日志类型的数据,并在日志存储的基础上提供查询和分析(SQL92语法)功能。告警监…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云云原生大数据计算服务 MaxComputeTunnel SDK常见问题-云淘科技

    本文为您介绍使用Tunnel SDK过程中的常见问题。 问题类别 常见问题 Tunnel SDK Upload 使用Tunnel SDK上传数据时,上传的数据可以自动分配到各个分区吗? 使用Tunnel SDK上传数据时,编写完UDF打成JAR包后上传,对JAR包大小有要求吗? 使用Tunnel SDK上传数据时,是否有分区数量限制? 使用Tunnel SD…

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。