我有一个数据库,其中为utf8mb4配置了字符集,并整理为utf8mb4_general_ci,但当我运行命令时
CREATE TEMPORARY TABLE TESTE(
CAMPO VARCHAR(200)
);
INSERT INTO TESTE (CAMPO) VALUES ('é');
select * from TESTE;
它向我返回错误
1 Incorrect string value: 'xE9' for column 'CAMPO' at row 9 SQL1.sql 9 20
发生的情况是,我正在使用LOAD DATA INFILE来插入值在我的数据库中,我需要我的表来接受重音字符
我在mysql 8.0.19中运行了这个,正如您在5.7 中看到的那样
<blockquote\CREATE TEMPORARY TABLE TESTE( CAMPO VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ); INSERT INTO TESTE (CAMPO) VALUES ('é');
✓✓
select * from TESTE;
>|CAMPO||:----||é|
db<>小提琴这里
两者都很好。
检查你的数据库,表/列的某个地方你没有正确的字符集
必须将我在表上插入的值的字符集更改为latin1
我在用
LOAD DATA INFILE 'pathToMyFile.csv'
INTO TABLE myTable
FIELDS TERMINATED BY ';'
所以我不得不添加命令CHARACTER SET latin1
soo我的代码现在就像
LOAD DATA INFILE 'pathToMyFile.csv'
INTO TABLE myTable
CHARACTER SET latin1
FIELDS TERMINATED BY ';'
工作得很好。