`

My-sql批量更新或者插入的SQL

 
阅读更多
My-sql批量更新或者插入的SQL,高效, MyBatis中的配置sample 如下:

<update id="batchUpdate" parameterType="java.util.List">
       INSERT INTO db_log.test1 ( a,b,c) values
        <foreach collection="list" item="it" index="index" separator=","> 
         (
          #{it.a},#{it.b},#{it.c}
         )
        </foreach> 
        on duplicate key update b=b+VALUES(b) , c=c+values(c)
     </update>

INSERT INTO stat_day (ymd,ad_id,sno,media_id,cno,req_num,req_num_valid,req_num_ad,req_num_media,tm) VALUES
  ('2013-09-25',1724,'aduu','9E7F1AE833','',4,3,2,1,NOW()),
  ('2013-09-25',1724,'aduu','9E7F1AE833','',4,3,2,1,NOW()),
  ('2013-09-25',1394,'aduu','9E7F1AE833','',4,3,2,1,NOW()),
  ('2013-09-25',1394,'aduu','9E7F1AE833','',4,3,2,1,NOW()),
   ('2013-09-25',1724,'aduu','9E7F1AE833','',4,3,2,1,NOW()),
  ('2013-09-25',1724,'aduu','9E7F1AE833','',4,3,2,1,NOW())
ON DUPLICATE KEY UPDATE req_num=req_num+VALUES(req_num),req_num_valid=req_num_valid+VALUES(req_num_valid),
   req_num_ad=req_num_ad+VALUES(req_num_ad),req_num_media=req_num_media+VALUES(req_num_media);
0
3
分享到:
评论
3 楼 cuishuangjia 2013-10-07  
http://cuishuangjia.iteye.com/blog/1934659
提供单体测试,结合测试解决方案。
性能优化。
DbTools工具下载:
http://cuishuangjia.iteye.com/
支持ORACLE,MYSQL,SQLSERVER,POSTGRE,DB2数据库相互转换功能

功能:
1。将数据库中的表结构和数据保存到EXCEL中。
2。将EXCEL中的数据,同步到数据库中。
3。当表结构发生变化时,数据不会丢失。
4。根据EXCEL中的表结构,生成建表语句SQL文。
5。多用户使用该软件时,可以随时记录某个用户对数据库的操作。
6。可以为进行压力测试,自动生成数据。
7。导出表结构,根据表结构和数据库中的表结构进行差分。
8。导出DB结构,和现有环境DB进行表结构差分
9。导出用户自定义表结构,根据表结构导入,导入数据前对EXCEL校验进行数据库验证和业务逻辑验证
10。单体测试,结合测试解决方案。
亲,请将5个压缩文件全部下载后,将5个压缩包解压后,将解压后的5个rar文件放入同一文件件下,再解压。
作者邮件:cuishuangjia@gmail.com
企鹅群:数据库第三方工具交流  184715368
2 楼 白云天 2013-09-25  
白云天 写道

test2 表, a +b 为 unique, 时候, 当数据存在时, insert 也能正常执行,可这样写:

INSERT INTO test2 (a,b) VALUES ('a','b4'),('a','b5'),('a','b6')
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b);




replace into 也能。效率上replace into 会低些。
1 楼 白云天 2013-09-25  

test2 表, a +b 为 unique, 时候, 当数据存在时, insert 也能正常执行,可这样写:

INSERT INTO test2 (a,b) VALUES ('a','b4'),('a','b5'),('a','b6')
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b);

相关推荐

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...

    jdbc-批量插入数据

    对于大型数据集,可能需要考虑使用数据库特定的批量插入优化,例如MySQL的LOAD DATA INFILE命令,或者通过BULK INSERT在SQL Server中进行批量导入。这些方法通常比JDBC的批量处理更快,但不适用于所有情况。 在实际...

    18 SQL优化--其他SQL的优化.doc

    - 直接使用批量插入,例如: ```sql INSERT INTO table (col1, col2) VALUES (val1, val2), (val3, val4); ``` #### 优化 GROUP BY 语句 - 当使用 `GROUP BY` 进行分组时,通常会自动排序,如果不需要排序,可以...

    在MY-SQL中创建过程

    它们可以用于批量插入、更新、删除数据,或者执行需要多次交互的业务流程。 通过学习如何创建和使用MySQL过程,我们可以优化数据库操作,减少代码重复,并提升应用程序的性能。同时,将业务逻辑封装在过程中,也有...

    txt文档导入SQL

    在实际应用中,你可能还需要处理错误、批量插入以提高效率,或者根据具体需求调整数据清洗和转换的逻辑。如果TXT文件非常大,可能需要分批读取和处理,以避免内存消耗过大。 在上述代码示例中,我们假设TXT文件和...

    SQL 安装过程及实例展示

    - `GO`关键字通常用于SQL Server中,用来分隔批量提交的SQL语句。MySQL中并没有直接对应的关键词。 7. **SQL数据类型示例**: - `Numeric(10,2)`表示该字段是一个数字型,总长度为10位,其中包含2位小数。 8. **...

    SQL Server2008中的T—SQL功能改进.pdf

    它允许使用单个INSERT语句插入多行数据,简化了批量插入操作: ```sql CREATE TABLE MyTable (ID int, Item varchar(20)) INSERT INTO MyTable VALUES (1, 'Bike'), (2, 'Car'), (3, 'Truck') ``` MERGE语句是SQL ...

    My-Ado_enough5iz_wide54s_Vc_源码

    9.批处理操作:学习如何通过ADO进行批量插入或更新,提升数据库操作效率。 10.对象的创建和释放:在VC中,正确创建和销毁ADO对象以避免内存泄漏是非常重要的。 通过对这个源代码的学习,开发者能够掌握使用ADO进行...

    使用sql语句查询的数据按时间递增累加

    在实际业务场景中,这种需求非常常见,特别是在财务、库存管理或者数据分析等领域,需要跟踪随时间变化的数据趋势。 ### 一、理解题目背景 #### 1.1 数据表结构介绍 首先,我们来了解下数据表`test1`的结构: - `...

    解决SQLServer最大流水号的方法

    SQL Server 中,最大流水号是指在插入数据时,自动增长的唯一标识符。然而,在实际应用中,我们可能会遇到最大流水号的问题,那么如何解决这个问题呢?本文将介绍两种解决 SQL Server 最大流水号的方法。 方法一:...

    技术支持利用JSON数据批量操作数据库(插入、更新)

    本篇文章详细介绍了如何利用JSON数据批量操作数据库(插入、更新),包括JSON数据的解析、数据库的连接与操作以及异常处理等方面的知识点。通过这些知识点的学习,读者可以更好地理解和应用相关的技术,在实际项目...

    SQL,SQL操作大全

    - **示例**:从 `source_employees` 表批量插入数据到 `employees` 表。 ```sql INSERT INTO employees (id, name, age) SELECT id, name, age FROM source_employees; ``` 以上是对SQL操作大全中的核心知识点...

    只能在PL/SQL中访问联合数组。

    虽然不能在SQL语句中直接使用联合数组,但可以通过PL/SQL将它们与数据库表格进行交互,例如通过游标将查询结果加载到联合数组,或者将联合数组的内容插入到数据库表格。 关于`add_months`函数,它是Oracle PL/SQL中...

    DM7SQL程序设计

    FORALL 语句可以有效地批量插入数据。 ##### 4.4 顺序结构 顺序结构包括`GOTO`语句和`NULL`语句。 ###### 4.4.1 GOTO 语句 ```sql GOTO my_label; &lt;&lt;my_label&gt;&gt; -- ... ``` `GOTO`语句用于跳转到指定的位置。 ...

    logstash-output-jdbc.zip

    - 使用批量插入:通过调整`batch_size`参数,一次性插入多条记录,提高写入效率。 - 调整数据库索引:根据写入的数据模式,创建合适的索引,提升查询性能。 - 配置连接池:通过`jdbc_connection_pool`参数启用连接池...

    mysql-connector-java-3.1.14

    - **批处理**:通过批量执行SQL语句,可以显著提高数据插入或更新的速度。 - **结果集处理**:通过ResultSet接口,可以遍历查询结果并进行处理。包括迭代、定位、排序、分页等操作。 - **异常处理**:JDBC驱动抛出...

    my-goblog

    "my-goblog" 是一个基于 Go 语言构建的个人博客系统。这个项目可能是为了学习、实践 Go 语言,或者为个人提供一个自定义的、轻量级的在线写作和分享平台。通过分析其文件名 "my-goblog-main",我们可以推测这可能是...

    sql*loader 指南

    SQL*Loader是Oracle提供的一款高效数据加载工具,用于将外部文件中的数据批量加载到Oracle数据库表中。该工具支持多种文件格式,包括CSV、文本文件等,并且能够处理复杂的字符分隔符和字段格式化需求。SQL*Loader有...

    my.cnf-调优

    - **bulk_insert_buffer_size**: 批量插入操作时分配的缓冲区大小。 - **myisam_sort_buffer_size**: MyISAM排序操作时分配的缓冲区大小。 - **myisam_max_sort_file_size**: MyISAM表最大排序文件大小。 - **myisam...

    SpringBoot整合hive-jdbc示例

    **SpringBoot整合Hive-JDBC详解** 在大数据处理领域,Hadoop生态中的Hive作为一个数据仓库工具,常常用于...这个简单的示例展示了基本的查询功能,实际应用中可以根据需求扩展更多的操作,例如插入、更新、删除等。

Global site tag (gtag.js) - Google Analytics