Navicat for MySql 导入txt数据时1366错误

来源:互联网 发布:齐天大肾余潇洒知乎 编辑:程序博客网 时间:2024/06/06 08:31

写在前面

本人近些天在将txt数据(以tab为分隔符,编码格式为utf-8)导入到MySql中时(使用Navicat for MySql),出现了错误,1366号错误:incorrect value。任凭我如何设置导入数据的编码格式,都会出现如上所述的错误。

参考解决方法

参考方法一

方法描述:在设计表格-选项中修改字符集和排序规则
介于以上问题,本人问了度娘,找到了一篇博文—— Navicat中 1366错误 incorrect string value ,以下是该博文的网址。

http://blog.csdn.net/michelle513/article/details/8258455

参考该博文提供的方法,选定目标表格,单击右键,选择设计表格(design table),然后选择选项(options),将字符集(charset)设置成utf-8,排序规则(collation)设置为 utf8_unicode_ci,再导入数据即可。如下图所示:

参考方法一图片

遇到的问题
本人根据如上设置之后,发现该错误仍然没有解决。本人看了博文的评论,有朋友通过该方法解决了问题,说明该方法至少是可行的,故此将该方法贴出来,提供给读者多一种参考解决办法。

参考方法二

方法描述:
使用Sql语句查询目标表格每列的编码格式:

SHOW FULL COULUMNS FROM ik_trian_data_new;

得到如下图所示的结果:

方法二结果图

修改数据库字符集:
[sql]
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

[sql]
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
只是修改表的默认字符集:
[sql]
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集:
[sql]
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
查看数据库编码:
[sql]
SHOW CREATE DATABASE db_name;
查看表编码:
[sql]
SHOW CREATE TABLE tbl_name;
查看字段编码:
[sql]
SHOW FULL COLUMNS FROM tbl_name;

我的方法

方法描述:
介于以上两种方法,我都没有成功的解决问题。在本人的摸索下,终于将该问题解决,同样是选定目标表格,单击右键,选择设计表格(design table),然后选定每列,修改其编码格式。如下图所示:
这里写图片描述
由此,本人成功解决导入txt数据时的1366错误。

小结

解决该错误的方法很多,但是不是每一种都能够有效的解决实际问题(由于每个人特定的因素),所以要根据自身特定的情况,尝试各种参考解决方法。希望以上各种方法对大家有用。

0 0
原创粉丝点击