набор символов utf8mb4 collate utf8mb4_general_ci не принимает слова с ударением - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть база данных с набором символов, настроенным для 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 для вставки значений в моей базе данных, и мне нужно, чтобы моя таблица принимала акцентированные символы

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Пришлось изменить набор символов для значений, которые я вставил в мою таблицу, на 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 ';'

и работал нормально.

0 голосов
/ 15 апреля 2020

Я запускаю это в 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 ('é');
✓

✓
select * from TESTE;
| CAMPO |
| :---- |
| é    |

db <> fiddle здесь

оба работают просто отлично.

проверьте вашу базу данных, таблицу / столбец, где у вас нет нужного набора символов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...