您的位置
主页 > 网站技术 > 数据库 > » 正文

MySQL load语句详细介绍(2)

来源: 锦尚中国 点击:

 1.如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被给予一个完整的路径名称,以指定确切的位置。如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录。

 2.如果LOCAL没有被指定,则文件必须位于服务器主机上,并且被服务器直接读取。

当在服务器主机上为文件定位时,服务器使用以下规则:

1).如果给定了一个绝对的路径名称,则服务器使用此路径名称。
2).如果给定了带有一个或多个引导组件的相对路径名称,则服务器会搜索相对于服务器数据目录的文件。
3).如果给定了一个不带引导组件的文件名称,则服务器会在默认数据库的数据库目录中寻找文件。

注意,这些规则意味着名为./myfile.txt的文件会从服务器数据目录中被读取,而名为myfile.txt的同样的文件会从默认数据库的数据库目录中读取。

从客户端使用绝对路径load数据

复制代码 代码如下:


LOAD DATA LOCAL INFILE '/import/data.txt' INTO TABLE db2.my_table;

从服务器里使用相对路径load数据

下面的LOAD DATA语句会从db1数据库目录中读取文件data.txt,因为db1是当前数据库。即使语句明确把文件载入到db2数据库中的表里,也会从db1目录中读取。

复制代码 代码如下:


USE db1;
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

IGNORE number LINES选项

IGNORE number LINES选项可以被用于在文件的开始处忽略行。

您可以使用IGNORE 1 LINES来跳过一个包含列名称的起始标题行:

复制代码 代码如下:


LOAD DATA INFILE '/tmp/test.txt'  INTO TABLE test IGNORE 1 LINES;

REPLACE和IGNORE

有些输入记录把原有的记录复制到唯一关键字值上。REPLACE和IGNORE关键字用于控制这些输入记录的操作。

如果您指定了REPLACE,则输入行会替换原有行(换句话说,与原有行一样,对一个主索引或唯一索引具有相同值的行)。

如果您指定IGNORE,则把原有行复制到唯一关键字值的输入行被跳过。




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明