问答

mysql 能不能导入文件批量插入到指定字段?

作者:admin 2021-05-07 我要评论

文件 value.txt : 1223 1.有没有什么语句可以做到效果: INSERT INTO table_name (column, value) VALUES ('固定的', 1);INSERT INTO table_name (column, valu...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

文件 value.txt :

1
2
2
3

1.有没有什么语句可以做到效果:

INSERT INTO table_name (column, value) VALUES ('固定的', 1);
INSERT INTO table_name (column, value) VALUES ('固定的', 2);
INSERT INTO table_name (column, value) VALUES ('固定的', 2);
INSERT INTO table_name (column, value) VALUES ('固定的', 3);

2.满足1的条件下,如果 value 字段是唯一索引,能否忽略错误并执行完成插入 3?

目前使用场景主要是批量导入大数据,想解决性能问题

###

我认为你是在 linux 下面哈,原谅我 sed 用的不太熟.

g@iMac ~ ~ ? cat a.txt                     
1
2
2
3
g@iMac ~ ? sort a.txt|uniq|xargs -I {} echo "INSERT INTO table_name (column, value) VALUES ('固定的', {});" >> b.sql
g@iMac ~ ~ ? cat b.sql
INSERT INTO table_name (column, value) VALUES ('固定的', 1);
INSERT INTO table_name (column, value) VALUES ('固定的', 2);
INSERT INTO table_name (column, value) VALUES ('固定的', 3);

关于批量导入大数据的场景,我的建议是,先删掉所有的索引,然后导入数据,数据导入完成之后再加回索引,这样快多了, 不然带索引插入,索引不停的分裂重建,效率不会太高的.

唯一索引的话,也一样,后建立,最好能在数据源层面就先去掉冲突的数据. 像上面的数据源,第一步我就排序去重了.如果你是从别的数据库里查询导出的,查询时做个聚合去重再导出就好了.

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • mysql 能不能导入文件批量插入到指定字

    mysql 能不能导入文件批量插入到指定字

  • 如何去除Echart.js的k线图中灰色的背景

    如何去除Echart.js的k线图中灰色的背景

  • 如何采集网络上正在使用的域名列表数据

    如何采集网络上正在使用的域名列表数据

  • 小程序开发 wepy2.0 app.wpy中的方法解

    小程序开发 wepy2.0 app.wpy中的方法解

腾讯云代理商
海外云服务器