字符集utf8mb4 collate utf8mb 4_general_ci不接受带有重音的单词



我有一个数据库,其中为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 中看到的那样

CREATE TEMPORARY TABLE TESTE(
CAMPO VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
);

INSERT INTO TESTE (CAMPO) VALUES ('é');
✓✓
<blockquote\
select * from TESTE;
>
|CAMPO||:----||é|

db<>小提琴这里

两者都很好。

检查你的数据库,表/列的某个地方你没有正确的字符集

必须将我在表上插入的值的字符集更改为latin1

我在用

LOAD DATA INFILE 'pathToMyFile.csv' 
INTO TABLE myTable
FIELDS TERMINATED BY ';'

所以我不得不添加命令CHARACTER SET latin1soo我的代码现在就像

LOAD DATA INFILE 'pathToMyFile.csv' 
INTO TABLE myTable
CHARACTER SET latin1
FIELDS TERMINATED BY ';'

工作得很好。

最新更新