LOAD DATA INFILE 导入数据文件报错有人知道为什么吗?找了好多方法都不行

Kyle-soft 2011-03-05 09:53:44
LOAD DATA INFILE 'c:/db.txt'
INTO TABLE tableName
CHARACTER SET utf8
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
(filed1,filed2,filed3)


db结构如下:
CREATE TABLE `tableName` (
`filed1` int(11) NOT NULL auto_increment,
`filed2` varchar(10) NOT NULL default '' COMMENT '分值',
`filed3` varchar(100) default NULL,
PRIMARY KEY (`filed1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



报错如下:
incorrect string value ‘岁’ for column ‘filed3’at row 1

导入数据文件如下:
1|99||19岁
2|92||19岁
3|93||19岁


show variables like 'character_set_%';
返回如下:
"character_set_client","utf8"
"character_set_connection","utf8"
"character_set_database","utf8"
"character_set_filesystem","binary"
"character_set_results","utf8"
"character_set_server","utf8"
"character_set_system","utf8"
"character_sets_dir","d:\\info\\"




字符编码我看了都是utf8我觉得应该没问题啊。
然后我看网上说下面这句我也试试看了反正网上很多方法都试试看了都不行啊。有人知道为什么吗?


alter table tableName modify filed3 varchar(100) character set utf8;
...全文
162 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2011-03-07
  • 打赏
  • 举报
回复
set names 'gbk'
or
set names 'gb2312'

DOS不支持UTF8
zuoxingyu 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 zlyperson 的回复:]
导入数据文件如下:
1|99||19岁
2|92||19岁
3|93||19岁

[/Quote]

你是用|做分隔符的,3个字段,你导的文件里面有3个分隔符,应该只有2个才对。

把文本文件改成这样应该就可以了。不是字符集的问题。
1|99|19岁
2|92|19岁
3|93|19岁

ACMAIN_CHM 2011-03-05
  • 打赏
  • 举报
回复
set names 'gbk' 吧。

你的DOS根本不支持UTF8.
rucypli 2011-03-05
  • 打赏
  • 举报
回复
先set names gbk是试试

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧