关于将unicode字符导入MySQL的问题有几个帖子,但没有一个答案适合我。我将尝试尽可能多地发布问题的每个细节,以便任何人都可以重现这个问题。简而言之,我从Sybase导入数据,我们有nvarchar支持,字符可以来自任何语言,我试图在MySQL中找到一个可以容纳任何东西的通用字符集。我使用的是utf8mb4字符集,它对我不起作用。
这是我得到的错误
我的服务器变量配置
我的架构
create DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
create table testdb.Tmp1
( DesignName varchar(255) character set utf8mb4 null,
CreationDate datetime null)CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
我使用MySQL Load命令导入数据,这是加载命令
LOAD DATA LOCAL INFILE 'C:\\tmp.txt'
INTO TABLE testdb.tmp1
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
( @DesignName,
@CreationDate
)
SET DesignName=nullif(@DesignName,''),
CreationDate = nullif( STR_TO_DATE(@CreationDate,'%M %d %Y %h:%i:%s:%f%p'), "0000-00-00 00:00:00");
这是我的测试数据
"Bandpass, Sallen Key, Linear Phase 0.5°","Sep 13 2013 1:11:49:000AM"
"Lowpass, Sallen Key, Linear Phase 0.05°","Jan 4 2014 10:54:58:000PM"