使用 LOAD DATA INFILE 将 CSV 文件导入运行在容器中的 MySQL

要使用 LOAD DATA INFILE 将 CSV 文件导入运行在容器中的 MySQL,并处理 CSV 文件中的 null 值,你可以遵循以下步骤:

1. 准备 CSV 文件

确保 CSV 文件的格式与你要导入的 MySQL 表格结构相匹配。对于 null 值,确保 CSV 文件中的 null 值以你选择的格式表示(例如,空字符串、特定的文本如'NULL'等)。

2. 复制 CSV 文件到容器

首先,你需要将 CSV 文件从宿主机复制到运行 MySQL 的容器内。使用 Docker 的 cp 命令来完成这个步骤。

sh 复制代码
docker cp /path/to/yourfile.csv my-mysql-container:/path/in/container

这里,/path/to/yourfile.csv 是宿主机上的 CSV 文件路径,my-mysql-container 是你的 MySQL 容器的名称或 ID,/path/in/container 是容器内的目标路径。

3. 导入 CSV 文件

然后,进入 MySQL 容器的命令行界面并执行 LOAD DATA INFILE 命令。

首先,进入容器的交互式 shell:

sh 复制代码
docker exec -it my-mysql-container bash

然后,在 MySQL 命令行中执行类似下面的 SQL 命令来导入数据:

sql 复制代码
LOAD DATA INFILE '/path/in/container/yourfile.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1, column2, @var3, column4, ...)
SET column3 = NULLIF(@var3,'NULL');

在这个命令中,your_table 是目标表名,column1, column2, @var3, column4, ... 是表中的列。对于可能包含 null 值的列(假设这里是 column3),使用一个变量(如 @var3)来接收原始数据,然后使用 SET 子句和 NULLIF 函数来把表示 null 的特定文本转换为真正的 null 值。在这个例子中,如果 @var3 的值是 'NULL',它将被转换为 SQL 的 NULL

4. 注意

  • 确保在 LOAD DATA INFILE 语句中正确设置字段分隔符、文本定界符和行终止符,以匹配 CSV 文件的格式。
  • 考虑到权限问题,你可能需要使用 LOCAL 关键字(即 LOAD DATA LOCAL INFILE),但这取决于你的 MySQL 配置和 Docker 容器设置。
  • 如果 CSV 文件中第一行是列标题,使用 IGNORE 1 LINES 来忽略它。如果没有列标题,则移除这部分。
  • 在执行这些步骤之前,请确保你有足够的权限来执行 SQL 命令,并且你的 MySQL 用户有足够的权限来读取文件。
相关推荐
敖云岚18 分钟前
【Redis】分布式锁的介绍与演进之路
数据库·redis·分布式
LUCIAZZZ1 小时前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
我在北京coding1 小时前
300道GaussDB(WMS)题目及答案。
数据库·gaussdb
小Tomkk1 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
明月醉窗台2 小时前
qt使用笔记二:main.cpp详解
数据库·笔记·qt
沉到海底去吧Go3 小时前
【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
数据库·qt·ocr·图片识别自动改名·图片区域识别改名·pdf识别改名
老纪的技术唠嗑局3 小时前
重剑无锋,大巧不工 —— OceanBase 中的 Nest Loop Join 使用技巧分享
数据库·sql
未来之窗软件服务3 小时前
JAVASCRIPT 前端数据库-V6--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟·东方仙盟数据库
寒山李白4 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查
冰橙子id4 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php