如何将无括号CSV内容转换为SQL INSERT INTO批量插入语句格式
快速批量处理CSV生成INSERT语句的方法
下面是几种常用的零额外工具成本的处理方案:
方法1:文本编辑器正则替换(通用性最高)
所有支持正则查找替换的编辑器(VS Code、Sublime Text、Notepad++等)都可以用,操作步骤:
- 复制CSV中所有待导入的数据行到编辑器
- 打开查找替换面板,勾选「正则表达式」匹配选项
- 第一次替换:查找内容输入
^(匹配行首位置),替换内容输入(,点击全部替换 - 第二次替换:查找内容输入
$(匹配行尾位置),替换内容输入),,点击全部替换 - 最后删除最后一行末尾多余的逗号,即可直接粘贴到INSERT语句的
VALUES关键字后使用
示例处理效果:
原行:3, Jake, 8/3/2021
处理后:(3, Jake, 8/3/2021),
方法2:Excel/WPS表格公式处理
如果CSV本身是用表格工具打开的,用公式更方便:
- 新增空白辅助列,对应第一行数据输入公式:
="("&A1&", '"&B1&"', '"&TEXT(C1,"m/d/yyyy")&"'),"
公式说明:A1对应ID列、B1对应Name列、C1对应Date列,字符串字段额外包裹单引号避免SQL语法错误 - 下拉公式填充所有数据行,复制辅助列内容后删除末尾多余逗号即可
方法3:命令行处理(适合大文件)
如果数据量很大不想打开编辑器,可以直接用命令处理文件:
- Windows系统(假设源文件为data.csv,输出到result.txt):
powershell -Command "(Get-Content data.csv) | ForEach-Object { '(' + $_ + '),' } | Set-Content result.txt" - macOS/Linux系统:
sed 's/^(/(/;s/$/),/' data.csv > result.txt
补充提示
如果数据量超过1万行,更推荐直接用数据库自带的CSV导入功能,比如MySQL的LOAD DATA INFILE、PostgreSQL的COPY命令,执行效率远高于手动拼接INSERT语句。
内容的提问来源于stack exchange,提问作者Shreyas Chaturvedi
相关产品推荐
相关产品推荐

