load data部分字段的正确写法

在日常运维中,会经常遇到将文件中数据导入到数据库中,如果是.sql文件,直接采用source方式即可;如果是.csv、.txt文件,可以采用 load data 方式。这两种方式都十分熟悉,这里说一种特殊情况:

需求很简单,有如下txt文件需要将数据导入库表对应字段中

文件已转换到unix,字符类型utf8,跟数据库一致,无乱码

数据对应字段

(date,division_id,division_name,pur_first_dept_cd,pur_first_dept_name,type,cost)

表结构(字符类型足够大):

开始这么写的

load data infile './day.txt' into table day(date,division_id,division_name,pur_first_dept_cd,pur_first_dept_name,type,cost) fields terminated by ',' lines terminated by '\n';

报语法错误:

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 'fields terminated by ',' lines terminated by '\n'' at line 1

将分隔符去掉:

load data infile './day.txt' into table day(date,division_id,division_name,pur_first_dept_cd,pur_first_dept_name,type,cost);

Query OK, 5 rows affected, 35 warnings (0.00 sec)

Records: 5 Deleted: 0 Skipped: 0 Warnings: 35

成功,但是35个warnings

查看show warnings ;

数据错位了,显然还是不对,必须得加上分隔符。

最后改成

load data infile './day.txt' into table day fields terminated by ',' lines terminated by '\n' (date,division_id,division_name,pur_first_dept_cd,pur_first_dept_name,type,cost);

Query OK, 5 rows affected (0.00 sec)

Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

没有报错,导入成功。

load data 导入部分字段数据时,需要把字段放到分隔符之后,这点跟之前所理解的有些差异,以后再遇到同类问题不会再走弯路。

原文发布于微信公众号 - MYSQL轻松学(learnmysql)

原文发表时间:2018-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大学生计算机视觉学习DeepLearning

新手 php连接数据库大概。简单过程浅析以及遇到的问题分析

44560
来自专栏魏艾斯博客www.vpsss.net

MySQL 数据库类型从 InnoDB 转换为 MyISAM

魏艾斯博客有一个 wordpress 站点,有一天无意中发现数据库挺大的,可是这个站也就不到 10 篇文章,没道理这么大的数据库啊。然后开始查找原因,发现在 p...

533220
来自专栏积累沉淀

Python快速学习第九天--安装并操作Mysql数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。...

29380
来自专栏行者常至

Hibernate 主键介绍

8820
来自专栏余林丰

再说单例模式的线程安全问题

今天和同事聊起了单例模式的线程安全,我说如果不做任何措施,单例模式在多线程下是不安全的,得到的“单例”实际上并不是单例。但是为什么不是单例呢?由此我上网查了一下...

20960
来自专栏前端儿

Web 后端--PHP 与数据库的交互

         用 PHP  操作 MySQL ,实现数据的交换,还要多练练....

14310
来自专栏蓝天

一个简单的支持MySQL和SQLite3的DB接口

simple_db.zip 相关联代码:https://github.com/eyjian/mooon/tree/master/common_library/...

12120
来自专栏阿杜的世界

Java Web技术经验总结(十四)

这个语句如果只是查询前面几页,或者是表的数据量不大(小于10万),就没有问题,否则就会出现慢查询。参考文章:【MySQL】 性能优化之 延迟关联进行了优化。

8010
来自专栏公众号_薛勤的博客

Hibernate各种主键生成策略与配置详解

主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对...

14720
来自专栏MYSQL轻松学

MYSQL INNODB表压缩

压缩前提 表压缩能提升性能,减少存储空间,主要是用在字符类型比较大的表上(VARCHAR,VARBINARY和BLOB和TEXT类型),且读多写少的情况下,如果...

1.1K40

扫码关注云+社区

领取腾讯云代金券