什么是有效载荷load data infiledata

infile语句从一个文本文件中以很高的速度读入一个表中使用这个命令之前,mysqld进程(服务)必须已经在运行为了安全原因,当读取位于服务器上的文本文件时文件必须处於数据库目录或可被所有人读取。另外为了对服务器上文件使用load data infile data infile,在服务器主机上你必须有file的权限

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

3  replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace新行将代替有相同的唯┅键值的现有行。如果你指定ignore跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项当找到重复键时,出现一个错误並且文本文件的余下部分被忽略。例如:

(1) fields关键字指定了文件记段的分割格式如果用到这个关键字,MySQL剖析器希望看到至少有下面的一個选项: 

(2)lines 关键字指定了每条记录的分隔符默认为'\n'即为换行符

5  load data infile data infile 可以按指定的列把文件导入到数据库中 当我们要把数据的一部分内容导叺的时候,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要比方说,我们要从Access数据库升级到MySQL数据库的时候

6  当在服务器主机上寻找文件时服务器使用下列规则: 

(1)如果给出一个绝对路径名,服务器使用该路径名 (2)如果给出一个有一个或多个前置蔀件的相对路径名,服务器相对服务器的数据目录搜索文件  (3)如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据庫目录寻找文件 例如: /myfile txt”给出的文件是从服务器的数据目录读取,而作为“myfile txt”给出的一个文件是从当前数据库的数据库目录下读取

我來举两个例子说明一下。

"我爱你","20","相貌平常经常耍流氓!哈哈"
"李奎","21","相貌平常,经常耍流氓!哈哈"
"王二米","20","相貌平常经常耍流氓!哈哈"
 
 

我来說明一下相关的参数
关于我的导入语句,我现在直说两个其他的参考手册。

character set gbk;这个字符集一定要写要不然就会乱码或者只导入一部分数據。

加入我们再次运行这个导入语句就会发现

 

如果想在导入的时候记录一下导入的具体时间怎么办

二、关于灵活性,其实也就是一个记錄功能

 

新导入的19条记录时间被记录了下来
只是之前的数据库没有记录,不过现在不需要这些重复数据了

虽然无法完全跳过某些有NULL值的行但是可以将NULL值转换成0或者某些值,在进行插入


参考资料

 

随机推荐