前言
由于手动将数据从EXCEL赋值并插入MySQL时,存在效率低下、错误率高的问题,因此寻找了一下从EXCEL中导出.csv文件,并直接插入MySQL的方法,以提升效率,减少错误情况的发生。
为了更加清晰地说明插入过程,首先在MySQL中构建一张表格,其具有以下属性:
- name (名字);
- id (编号,【主键】);
- age (年龄);
- gendor (性别:0为女性,1为男性);
- email (邮件)
具体的创建语句如下:
CREATE TABLE `students` (
`name` varchar(8) DEFAULT NULL,
`id` bigint NOT NULL AUTO_INCREMENT,
`age` tinyint DEFAULT NULL,
`gender` tinyint(1) DEFAULT NULL,
`email` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
方式一:使用sql语句进行导入操作
- cmd登录MySQL
mysql -u root -p use students select * from students (确认是否成功创建数据表)
- 将EXCEL的.xlsx文件转存为UTF-8格式的.csv文件(可以使用EXCEL或者WPS的另存为转):
如转换过程中没有选择转换为UTF-8格式,那么最终导入数据过程可能会出现乱码。 - 使用sql语句导入数据
load data local infile 'D:/students.csv' into table students fields terminated by ',';
此过程中,可能会出现几个问题:
-
- MySQL ERROR 3948 (42000)
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
- MySQL ERROR 3948 (42000)
解决方法:
-
-
- 查看是否开启加载本地文件 show variables like 'local_infile';
-
-
-
- 如果未开启,那么在cmd中进行设置:
set global local_infile=on;
- 如果未开启,那么在cmd中进行设置:
-
-
- ERROR 2068 (HY000)
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
- ERROR 2068 (HY000)
解决了ERROR 3948以后,我用load data local infile又出现了Error2068,ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
解决方法:
-
-
- 需要以mysql -u 用户名 -p --local-infile的命令登陆,如:mysql -u root -p --local-infile。即可正常使用命令,如load csv文件到数据库:
load data local infile 'd:/student.csv' into table gorm.students fields terminated by ',';
- 需要以mysql -u 用户名 -p --local-infile的命令登陆,如:mysql -u root -p --local-infile。即可正常使用命令,如load csv文件到数据库:
- ERROR 1064 (42000)
mysql> set global set local_infile=on; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set local_infile=on' at line 1
-
解决方法:
-
-
- 语法拼写错误
-
4. 验证
方式二:使用IDE工具可视化导入操作
- 同方式一的第2.步,将.xlsx文件转存为.csv
- 使用Goland插入数据
1.
2.
3. 4. 5. - 数据验证