mysql load data infile 命令的数据导入

使用方式如下:

 代码如下 复制代码

mysql>load data local infile "D:/ab.txt" into table mytbl(name,age); 

如何load数据里面带反斜杠(backslash)”” 的数据

由于如果你没有指定FIELDS子句,则默认值为假设您写下如下语句时的值:

 代码如下 复制代码
FIELDS TERMINATED BY ‘t’ ENCLOSED BY ” ESCAPED BY ‘\’

所以,如果你的数据里面有反斜杠(backslash)””的时候,数据会出现被截断的问题。出现这种问题,只要写上如下的fields子句即可

 代码如下 复制代码
FIELDS TERMINATED BY ‘t’ ENCLOSED BY ” ESCAPED BY ”

使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据。如果编译安装mysql时没有指定–enable-local-infile,那么在使用上述命令时会报如下错误:

ERROR 1148 (42000): The used command is not allowed with this MySQL version    

 解决方式有两种,一是重新编译安装加上上面的参数,而是直接用命令行执行,如下:

 代码如下 复制代码

mysql -uroot -proot  mydb_name --local-infile=1 -e 'load data local infile "D:/ab.txt" into table mytbl(name,age)'    

测试了一把,导入300万条数据时,使用load data命令的时间花销大概在3分钟左右

如何load的时候只insert特定的列
比如表里面有比元数据多的列。可以在load的时候指定要插入的字段名字。

示例的代码如下:

 代码如下 复制代码

LOAD DATA INFILE '~/data.txt'  
INTO TABLE fb0505  
CHARACTER SET  gbk  
FIELDS TERMINATED BY 't' ENCLOSED BY '' ESCAPED BY ''
LINES TERMINATED BY 'n' STARTING BY '' 
(seller_id,fb_type,fb_date,item_url);

其中表fb0505里面还有一列是id。

建的表用的是MYISAM,调整了几个session的参数值

 代码如下 复制代码

SET SESSION BULK_INSERT_BUFFER_SIZE=256217728;
SET SESSION MYISAM_SORT_BUFFER_SIZE=256217728;

时间: 2024-09-20 09:10:02

mysql load data infile 命令的数据导入的相关文章

mysql LOAD DATA INFILE 命令模式导入超大数据库文件

导入数据库的过程中由于 文件过大 而且文件格式都不是标准的sql 文件 无法使用 source 导入 csdn 数据格式为 :用户名 # 密码 # 邮箱 各数据都以#隔开   导入sql 语句如下:  代码如下 复制代码 mysql -> LOAD DATA INFILE 'www.111cn.net.txt' INTO TABLE csdn -> FIELDS TERMINATED BY '#';     人人数据 格式 为 : 用户名 密码 中间以空格隔开 导入语句:  代码如下 复制代码

mysql Load Data InFile OutFile数据导入导出

下面我们来看看关于mysql Load Data InFile  OutFile数据导入导出哦,这种方法是我们在windows cmd.exe目当下运行的然后再在dos命令方法使用下面的语句的.  Load Data InFile 相反的是 Select * From `TableTest` Into OutFile 'C:/Data_OutFile.txt'; 把表的数据导出 常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest`

mysql load data infile 的用法(40w数据 用了3-5秒导进mysql)_Mysql

如果是导入有中文的数据,我的mysql 设置的utf8 字符集,所以你要导入的xxx.txt 文件也要保存utf-8的字符集,命令 load data infile "d:/Websites/Sxxxx/test1.txt" ignore into table `names` fields terminated by ',' enclosed by '"'; 不知道用replace 这个关键字的话,还是会乱码..不同.等高手回答. 在详细的介绍,推荐大家去看mysql手册去吧

mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)

mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${db_name}/ 下,并确保导入用户拥有这个txt文件的权限,否则会报Error 13错误 1.${table_name}换myisam,我们的场景对事务没啥要求,innodb引擎速度太慢了,原来导入12个小时都没导完 2.导入前修改参数和禁止索引更新mysql> SET SESSION BULK_

Load Data Infile批量导入数据

mysql提供了一个  load data infile xxx into table table_name  的方法来帮助批量的导入数据.这个操作是 select * out to file 操作的逆操作. 大体的使用方式是: shell>mysql -hxx -uxx -pxx database mysql>set names utf8; mysql>load data infile '/path_to_file/xx.csv' into table xx ; 但是在遇到文件不在my

mysql-Mysql中load data infile时能否为其它字段设值

问题描述 Mysql中load data infile时能否为其它字段设值 比如我现在有一张表,字段有a.b.c.d四个,load data时的txt文件只包含3个字段(a.b.c)的值,在导入的同时,我能为每条记录的d字段设置一个值吗?(比如操作的用户名等) 解决方案 [MySQL5.0]Load data infile 时遇到的奇怪问题mysql load data infile的使用mysql load data infile的使用 解决方案二: http://www.2cto.com/d

MySQL中使用load data命令实现数据导入的方法_Mysql

使用方式如下: 复制代码 代码如下: mysql>load data local infile "D:/ab.txt" into table mytbl(name,age); 使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据.如果编译安装mysql时没有指定 –enable-local-infile,那么在使用上述命令时会报如下错误: 复制代码 代码如下: ERROR 1148 (4

MySQL用load data命令进行数据导入方法

LOAD DATA语法说明: LOAD DATA INFILE句法 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]     INTO TABLE tbl_name     [FIELDS         [TERMINATED BY 't']         [OPTIONALLY] ENCLOSED BY '']         [ESCAPED BY '\' ]]     [LINES TE

合理使用mysql中的load data infile导入数据

基本语法: load data  [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'' ]] [lines terminated by'n'] [ignore number lines] [(col_name,   )]   load data