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

写在前面

本人近些天在将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错误。

小结

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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值