首先检查RDS参数
SHOW GLOBAL VARIABLES LIKE 'local_infile';

local_infile必须为ON
阿里参数设置的默认就是ON。如果不为ON。去RDS控制台更改参数

然后创建一个测试表
CREATE TABLE `test20` (
`id` int(11) DEFAULT NULL,
`ss` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
在Windows本地建一个txt文档用于导入

在Windows客户端命令行登陆MySQL 一定得带上参数 --local-infile=1
mysql.exe --host=HOST --port=3306 --user=dba --password=abc123 --local-infile=1
在命令行执行导入命令
load data local infile "D:\\ExecScriptTest\\data.txt" into table cgtest.test20 fields terminated by ',';

再去查看数据库表数据

数据已完全导入。
另外 load data 不支持直接导入null
举例:表结构如下
CREATE TABLE `test21` (
`col1` int(11) DEFAULT NULL,
`col2` varchar(20) DEFAULT NULL,
`col3` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
导入文件如下:

执行导入并查看警告

查看现在表中数据

可以看到。我txt文件中没有填入的字段。int,varhcar,datetime的表现是不一样的
int字段给我自动填的0
varchar字段自动填的’’
datetime字段自动填的’0000-00-00 00:00:00’
如果我想要 int字段与 datetime字段 我没有填的行。自动为null该怎么实现呢?
用如下语句
load data local infile "D:\\ExecScriptTest\\data1.txt" into table cgtest.test21 fields terminated by ',' (@col1,col2,@col3) set col1 = nullif(@col1,'') , col3 = nullif(@col3,'');
再查看 数据库内容

实现了null值的填充。
最后修改时间:2023-01-18 14:26:30
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




