load方式把CSV格式的文件数据批量导入mysql(一个小坑)

打开原始文件,在右下角看是window(CRLF)的还是Unix(LF)的

如果是window(CRLF)

导入的语句为:

load data local infile '/var/lib/mysql-files/cshi.txt' 
into table SHELF2   

character set utf8   -- 可选,避免中文乱码问题
fields terminated by 'Ж'   -- 字段分隔符,每个字段(列)以什么字符分隔,默认是 \t

optionally enclosed by ''   -- 文本限定符,每个字段被什么字符包围,默认是空字符  
lines terminated by '\r\n'    -- 记录分隔符,如字段本身也含\n,那么应先去除,否则load data 会误                                           将其视作另一行记录进行导入 
ignore 1 rows;      -- 忽略首行          

如果是Unix(LF)的

 执行语句为:

load data local infile '/var/lib/mysql-files/SHELF1.CSV' 
into table SHELF2

character set utf8
fields terminated by 'Ж'

optionally enclosed by '' 
lines terminated by '\n'
ignore 1 rows;

两个的区别就是主要是 '\r\n'与 '\n'的区别,就是这个区别,实在很抗

如果出现这样的报错:

ERROR 1261 (01000): Row 15 doesn't contain data for all columns

这是因为sql_mode 被设为了 strict 模式, 要想继续导入需要把“strict_trans_tables” 从 sql_mode 中去掉.

查看 MySQL 当前连接的 sql_mode

mysql> show variables like 'sql_mode';
临时修改sql_mode

mysql> set sql_mode='';

之后在重新执行语句就可以了。

注意细节:我是把文件上传到集群才批量导入的,mysql需要把文件导到指定的安全目录才可以,每个人的安全目录不一样,具体安全目录在哪,你们自己查查看。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值