使用sublime编写sql脚本导入csv到mysql的步骤如下:1.确保csv文件格式标准,字段顺序与数据库表一致,检查字段名是否匹配、编码为utf-8;2.在sublime中编写load data infile语句,指定文件路径、目标表、字段分隔符、行终止符并决定是否忽略首行;3.通过命令行或客户端执行sql脚本,注意mysql的secure_file_priv设置及文件路径权限;4.处理常见问题如权限不足、字段类型不匹配、路径错误和换行符不一致,依据报错信息调整数据或脚本。
如果你用 Sublime 编辑器写脚本,想把 CSV 文件导入 MySQL 数据库,其实整个流程并不复杂。关键在于理清数据格式、SQL 脚本的结构和执行方式。下面我来一步步说说怎么做。
准备好 CSV 文件格式
在开始之前,首先要确保你的 CSV 文件是标准格式,并且字段顺序与目标数据库表的字段一致。比如你有一个
users.csv
,内容如下:
id,name,email 1,张三,zhangsan@example.com 2,李四,lisi@example.com
那对应的数据库表也应该是包含
id
,
name
,
字段的表。如果字段名不一致或者顺序不对,后续导入就会出错。
- 检查第一行是否为字段名(根据实际情况决定是否跳过)
- 确保没有多余的空格或非法字符
- 如果有中文,确认文件编码是 UTF-8
用 Sublime 写 SQL 导入语句
Sublime 是个很适合写脚本的编辑器,你可以新建一个
.sql
文件,输入以下语句:
LOAD DATA INFILE '/path/to/your/file.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n' IGNORE 1 ROWS;
几点说明:
-
/path/to/your/file.csv
是你本地 CSV 文件的路径,注意这个路径要是 MySQL 可访问的路径
-
users
是你要导入的目标表名
-
IGNORE 1 ROWS
表示忽略第一行标题(如果没有标题可以去掉)
如果你使用的是 windows 系统,路径最好用双反斜杠或者直接斜杠:
'C:/data/users.csv'
在 MySQL 中执行脚本
保存好
.sql
文件后,就可以通过命令行或客户端工具来执行了。
例如在终端里连接 MySQL:
mysql -u 用户名 -p 数据库名 < import_script.sql
或者你也可以直接登录 MySQL 后运行:
source /path/to/import_script.sql;
注意:MySQL 的 secure_file_priv 设置可能会限制你导入文件的位置,可以通过 SHOW VARIABLES LIKE “secure_file_priv”; 查看允许的目录。
常见问题及解决方法
导入过程中常见的几个问题:
- 权限不足:确保 MySQL 有权限读取你指定的文件路径
- 字段类型不匹配:CSV 中的数据类型要和数据库字段一一对应,尤其是日期、数字等
- 路径错误:文件路径拼写错误或不可访问,Windows 和 linux 下路径写法不同
- 换行符问题:有些 CSV 文件用了
rn
,这时候要改成
LINES TERMINATED BY 'rn'
如果遇到报错,不要急着重试,先看看具体哪一行出错了,再调整脚本或数据。
基本上就这些。只要数据格式对得上,SQL 写清楚,执行的时候别搞错路径,整个过程其实很快。