`
kxys422834
  • 浏览: 43252 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

mysql的load data有bug

阅读更多
   今天才知道txt文件其实也是有字符编码的。一般情况下,txt文件都是ansi字符编码,当然也可以换成utf8。
   mysql的load data有bug,这个在某个情况下会出现。mysql数据库属性设置为utf8。在数据库中建一张表:
DROP TABLE IF EXISTS t_cc;
CREATE TABLE t_cc(
	cityId INT NOT NULL,
	cityCode INT(6) PRIMARY KEY  NOT NULL,
	cityName VARCHAR(20) NOT NULL,
	proCode INT(6) NOT NULL
)ENGINE=INNODB;
LOAD DATA INFILE 'd:/a.txt' INTO TABLE t_cc LINES TERMINATED BY '\r\n';

要导入的a.txt文件在下面有。该文件其中基本数据如下:
1 110100 北京市 110000
3 120100 天津市 120000
5 130100 石家庄市 130000
6 130200 唐山市 130000
7 130300 秦皇岛市 130000
8 130400 邯郸市 130000
9 130500 邢台市 130000
然后大家可以看到导入数据库中的第一个数据变成0了.然后我把cityId属性改为VARCHAR的话就没这个问题了。后来又把数据库属性改为gbk,也不会出现这个问题了。
   第一次发帖,是新手,有啥问题请指教啊,这个因该算bug吧。
  • a.rar (115 Bytes)
  • 下载次数: 8
0
0
分享到:
评论
7 楼 kxys422834 2011-01-28  
关于bom头有个介绍,给自己做个标记:http://www.xueit.com/html/2010-10/21-402160462010103014422462.html
6 楼 kxys422834 2011-01-28  
丁林.tb 写道
kxys422834 写道
丁林.tb 写道
但是你提供下载的这个压缩包里面没有bom头呀?

啊,我只是看了大概bom头的意思,发现的确很想这种情况,这个的确是在utf8编码格式下出现的情况。具体的我也没注意啊。怎么查看bom头呢?


ultraedit的二进制模式就可以

看来这个问题还是没有解决。。。

那个估计传的是ansi格式的文件了。刚才我把这个文件转成utf8格式,再用ultraedit看的确看到了bom头EF BB BF。但是当初我这个文件本身就是ansi格式,只是用数据库读它的时候用的是utf编码的。看来数据库设置utf8的话也得注意一下
5 楼 丁林.tb 2011-01-28  
kxys422834 写道
丁林.tb 写道
但是你提供下载的这个压缩包里面没有bom头呀?

啊,我只是看了大概bom头的意思,发现的确很想这种情况,这个的确是在utf8编码格式下出现的情况。具体的我也没注意啊。怎么查看bom头呢?


ultraedit的二进制模式就可以

看来这个问题还是没有解决。。。
4 楼 kxys422834 2011-01-28  
丁林.tb 写道
但是你提供下载的这个压缩包里面没有bom头呀?

啊,我只是看了大概bom头的意思,发现的确很想这种情况,这个的确是在utf8编码格式下出现的情况。具体的我也没注意啊。怎么查看bom头呢?
3 楼 丁林.tb 2011-01-28  
但是你提供下载的这个压缩包里面没有bom头呀?
2 楼 kxys422834 2011-01-27  
kimmking 写道
bom头害死人。
谢谢,让我更进一步知道是怎么回事了,原来是
bom头的元婴啊
1 楼 kimmking 2011-01-26  
bom头害死人。

相关推荐

    UDAC 3.70.0.18 源码版

    Possibility to load data in TVirtualTable without recreating persistent fields is added Working in design time editor of the TVirtualTable component is improved Loading files opened by other ...

    MySQL命令.txt

    - `LOAD DATA LOCAL INFILE '文件路径' INTO TABLE 表名;`:这条命令用于将本地文件中的数据导入到指定的表中。 通过以上命令的解析,我们可以看到MySQL提供了丰富的功能,包括但不限于数据库的管理、用户的权限...

    Linux全攻略--MySQL数据库配置与管理[汇编].pdf

    * mysqlimport:提供一个到SQL语句LOAD DATA INFILE的命令行接口,通过LOAD DATA INFILE命令,可以将文本文件导入到数据库中。 MySQL数据库的管理与维护 * 创建数据库:可以使用两种方法来创建数据库,即在客户端...

    MySQL命令行实用程序.pdf

    9. **mysqlimport**:通过LOAD DATA INFILE语句,将文本文件导入到数据库中的表。 10. **mysqlshow**:展示数据库、表、列和索引的相关信息,有助于理解和调试数据库结构。 11. **perror**:显示系统或MySQL错误...

    DevArt UniDAC v.3.70.0.18 (15-Jun-2011) (with Source Code)

    Possibility to load data in TVirtualTable without recreating persistent fields is added Working in design time editor of the TVirtualTable component is improved Loading files opened by other ...

    MYSQL常见故障分析

    MySQL crash指的是数据库进程崩溃,这通常是由于数据库的Bug、硬件故障或内存不足等原因引起的。主机Hung指的是数据库所在的服务器响应缓慢或无响应,这时需要检查服务器整体状态和资源使用情况。 为了诊断MySQL...

    Linux全攻略--MySQL数据库配置与管理.pdf

    10. mysqlmport:提供一个到SQL语句LOAD DATA INFILE的命令行接口,通过LOAD DATA INFILE命令,可以将文本文件导入到数据库中。 MySQL数据库的管理与维护: 1. 创建数据库:可以使用两种方法来创建数据库,即在...

    MySQL线上常见故障剖析

    - **Processlist分析**: 查看线程状态,如“Waiting for table”表示等待表锁,“Sending data”表示正在发送数据。 - **Pstack**: 分析线程堆栈,了解具体挂起原因。 - 例如:`pthread_cond_wait`表示线程在等待...

    MYSQL培训经典教程(共两部分) 1/2

    mysql 的输入行编辑器 54 3.2.4 批处理模式连接 55 3.2.5 总结 56 3.3 有关数据库的操作 56 3.3.1 用SHOW显示已有的数据库 56 3.3.2 用Create Dabase 创建数据库 57 3.3.3 用DROP DATABASE删除...

    MySQL 5.6 Reference Manual

    Table of Contents Preface, Notes, Licenses . . . . . . . . ....1. Licenses for Third-Party Components ....1.1. FindGTest.cmake License ....1.2. LPeg Library License ....1.3. LuaFileSystem Library License ....

    深入探寻mysql自增列导致主键重复问题的原因

    前几天开发的同事反馈一个利用load data infile命令导入数据主键冲突的问题,分析后确定这个问题可能是mysql的一个bug,这里提出来给大家分享下。以免以后有童鞋遇到类似问题百思不得其解,难以入眠,哈哈。

    MYSQL培训经典教程(共两部分) 2/2

    mysql 的输入行编辑器 54 3.2.4 批处理模式连接 55 3.2.5 总结 56 3.3 有关数据库的操作 56 3.3.1 用SHOW显示已有的数据库 56 3.3.2 用Create Dabase 创建数据库 57 3.3.3 用DROP DATABASE删除...

    MySQL 相关的环境变量

    12. **mysqlimport**: 使用`LOAD DATA INFILE`快速导入文本文件到数据库表中。 13. **mysqlshow**: 显示数据库、表、列和索引的相关信息。 14. **mysql_install_db**: 创建MySQL授权表的默认权限,通常只在首次...

    基于python的小区监控图像拼接系统源码数据库论文.doc

    To ensure data security and accessibility, the MySQL database is adopted in this design. Additionally, considering the potential need for system maintenance, a Browser/Server (B/S) architectural ...

    java高频面试题2/java二年开发常问面试题

    - 可通过SQL批量导入、工具如MySQL的LOAD DATA INFILE,或者编程方式如Java的JDBC批量插入来处理大量数据。 8. **JVM原理**: - Java虚拟机是Java运行的核心,理解其内存模型(堆、栈、方法区等)、垃圾回收机制...

    mycat用户手册

    - **概述**: 修复了多个重要缺陷,包括loaddata语句对不同字符集的支持、explain显示缺陷等。 - **应用场景**: 所有使用Mycat 1.5的应用场景都会从中受益,尤其是那些依赖于数据准确性和系统稳定性的场景。 #### ...

    Sqoop 导入数据异常处理

    解压使用会出现几个bug,之前也是出现了,然后也没有来记录一下。现在记录一下. 问题1. 第一个,你要把mysql驱动包放在lib目录下。不然会报找不到驱动包的错误 问题2. Exception in thread “main” java.lang....

    全国行政区划数据带拼音+无拼音版本.zip

    1. 使用`source`命令或`LOAD DATA INFILE`语句,将.sql文件的内容导入到MySQL服务器。 2. 确认数据成功导入,可以使用`SELECT`语句查询部分数据以验证。 3. 如果需要,可以创建索引以优化查询性能,尤其是针对拼音...

    revsuit:RevSuit 是一个灵活而强大的反向连接平台,专为在渗透中接收来自目标主机的连接而设计

    支持多种协议,支持深度利用部分协议,如DNS重绑定、MySQL Load Local Data、JDBC Deserialize Exploit、FTP Passive Mode SSRF等。 本机支持与扫描仪一起使用。 支持推送通知到流行的办公软件。 其他周到和详细...

Global site tag (gtag.js) - Google Analytics