注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

85167118的博客

西安艺语网络传媒印务有限公司

 
 
 

日志

 
 

实用技巧:解决Mysql数据库中数据输入问题   

2010-03-01 11:08:07|  分类: 计算机知识交流 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

关于数据库中数据输入问题

-------------------SELECT ... INTOOUTFILE 的 LOAD DATA INFILE 的逆操作问题.

一般我们都用insert into table_name values();来给数据表添加记录.这是一种方法. 当然也可以使用mysqlimport实用程序装载数据文件.其实它也是发送local data infile命令到服务器

而在输入大量数据的时候 ,我们可以用load data infile 语法来实现.

之前,我们需要先编辑一个文本文件.录入我们的数据.

load data infile的语法如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name

[FIELDS

[TERMINATED BY '\t'] ('\t'为制表符)

[[OPTIONALLY] ENCLOSED BY ''] 说明不包括在任何字符里面.

[ESCAPED BY '\\' ] 表明无转义字符

]

[LINES TERMINATED BY '\n'] 这也是它的缺省状态了

[IGNORE number LINES]

[(col_name,...)]

注:local关键字没有被指定的时候 ,文件必须在服务器上.而local被指定时,则可以从客户端读取文件.(在 MySQL 3.23.49 和 MySQL 4.0.2 中,只有当你没有以 --local-infile=0 选项启动 mysqld,或你没有禁止你的客户端程序支持 LOCAL的情况下,LOCAL 才会工作,先于 MySQL 3.23.24 的版本,不能够以 LOAD DATA INFILE 读取)

如果是在服务上读取的时候,则我们需要知道下面三个问题:

1,若以相对路径的形式给出,如"./*.txt",则这个目录是相对服务器的数据目录.

2,若是"*.txt"则是从当前数据库目录下读取的文件.

3,则是完整路径.即绝对路径了!

下面的fields子句,一开始录入的时候,总是报错.是因为我对fields可选项不清晰的理解问题, 其中的terminated by char 指定一个字符,标记分隔列.而enclosed

by char 则指示列值被什么字符所包含.最后的escaped by char则表示用于转义特殊字符的转义符.我第一次录入时,错误的原因是因为不清楚它们三个的缺省状况.上面的语法部分列出的就是它们的缺省状况.见上.

另外当你同时输出文件与读取记录时,即用SELECT ... INTO OUTFILELOAD DATA INFILE 和 LOAD DATA INFILE 时,必须注意两个命令的字段和行处理选项必须匹配.

可能会遇到的问题如下:

data truncation: data truncated for column 'id' at row 3

这种问题是在你没有搞清mysql数据类型的前提下会发生的一种情况,建议基础不好的先看一下sql语言的数据类型.搞清之后就不会发生truncation(断开)问题了。

 

 

  评论这张
 
阅读(31)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017