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); 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);
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 会低些。 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