load data infile

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ‘file_name‘

[REPLACE | IGNORE]

INTO TABLE tbl_name

[PARTITION (partition_name,...)]

[CHARACTER SET charset_name]

[{FIELDS | COLUMNS}

[TERMINATED BY ‘string‘]

[[OPTIONALLY] ENCLOSED BY ‘char‘]

[ESCAPED BY ‘char‘]

]

[LINES

[STARTING BY ‘string‘]

[TERMINATED BY ‘string‘]

]

[IGNORE number {LINES | ROWS}]

[(col_name_or_user_var,...)]

[SET col_name = expr,...]

starting by指定每行开始的位置,跟字符有关。

terminated by 指定列的分隔符,默认是Tab符(\t)。

enclosed by  指定列的包括符,默认为空。

escaped by 转义字符,默认的是反斜杠(‘\‘)。

IGNORE number {LINES | ROWS} :忽略数据文件的前N行。

如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:

load data low_priority infile "/tmp/data sql" into table Orders;

如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。

replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。

如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。例如:

load data low_priority infile "/tmp/data sql" replace into table Orders;

关于字符集的处理,

范例一:

load data infile ‘/tmp/test.txt‘ into table test charset gbk fields terminated by ‘,‘;

范例二:

先设置字符集,再执行导入语句:

set character_set_database=gbk;

表中的列比数据文件的列多,处理范例:

$more /tmp/test.csv

10,"zhangsan","[email protected]",25

11,"lisi","[email protected]",26

12,"wangwu","[email protected]",27

load data infile ‘/tmp/test.csv‘

into table test

FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘"‘

(id,name,ename,age);

表中的列比数据文件的列少,并且最后两列也不对应,处理范例:

$more /tmp/test.csv

10,"zhangsan",25,"[email protected]",13000000000,0

11,"lisi",26,"[email protected]",13000000001,5

12,"wangwu",27,"[email protected]",13000000002,2

load data infile ‘/tmp/test.csv‘

into table test

FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘"‘

(id,name,age,ename,@tmp_sex,@tmp_tel,status)

set sex-if(@tmp_sex=‘男‘,0,1;

时间: 2024-08-08 18:16:24

load data infile的相关文章

mysql导入数据load data infile用法整理

有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. 假如是从MySql客户端调用,将客户端的文件导入,则需要使用 load local data infile. LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中.文件名必须是一个文字字符串. 1,开启load local data infile. 假如是Linux下

mysql文件导入到数据库load data infile into table 的使用例子

load data infile "C:/Users/Administrator/Desktop/1.txt"into table 要一个已经存的表名 字段默认用制表符隔开 文件 我爱你 20 相貌平常李奎 21 相貌1平常王二米 210 相貌3平常老三 24 很强老四 34 XXXXX 常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest` Lines Terminated By '\r\n';这个语句,字段默认用制表符

关于MySQL中使用LOAD DATA INFILE导入csv文件时的日期格式问题

在使用MySQL时,常常会用到Load Data Infile来导入数据,在遇到Date类型的列时,有时会遇到格式转换的问题: 首先创建一张简单的people表,包含名字,生日,年龄三个字段: mysql> create table people( -> name varchar(10) NOT NULL, -> birthday date NOT NULL, -> age int NOT NULL); Query OK, 0 rows affected (0.18 sec) 构造

mysql 的load data infile的用法

LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中. 1.基本语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINE

My SQL load data infile 遇到的问题总结

假如: create table test_table( id int, name varchar (128); 假如命令如下: load data infile 'a.txt' into table `test_table` fields enclosed by '"' terminated by ',' 假如列值如下: "1","abc"123"abc" 这样的值还是能正确处理的.导入之后,列值为:1 abc"123&qu

使用load data infile来导入导出数据

先导出数据 mysql> select * from timer_gps_posinfo where time>'2017-01-01 00:00' and time <'2017-01-02 00:00' into outfile '/home/posinfo.txt' fields terminated by ','; 报错: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opt

mysql数据库LOAD DATA INFILE Syntax

1.LOAD DATA INFILE用来把一个文本文件里的内容高速写入到MySQL表里,它和SELECT ... INTO FILE的操作是对应的,一个导入.一个导出.使用LOAD DATA INFILE需要MySQL对要导入的文件有读权限,其语法如下: LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_name [PARTITION (partit

mysql导入数据load data infile用法

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]

关于LOAD DATA INFILE 命令的使用问题解决

通过LOAD DATA方式将数据导入数据表中 LOAD DATA INFILE '输入文件的路径及文件名' INTO TABLE 要导入表的表名称; LOAD DATA INFILE 'G:/p.txt' INTO TABLE province;LOAD DATA INFILE 'G:/p.txt' INTO TABLE province CHARACTER SET utf8 ; 这个命令有几个需要注意的地方: 注意: (1)       导入txt之前,应当删除字段的表头,否则表头内容也会被当