Я использую talend для переноса данных из старой базы данных в новую базу данных. Старая база данных — PostgreSQL, новая — MySQL.
Но у меня проблема, потому что в старой базе есть такие строки:
id lft rgt rank_id name_sci
------------------------------------------------------
6530 6137 6138 88 Ocythoë tuberculata
6340 6127 6128 88 Ocythoe tuberculata
Обратите внимание на две точки над e
Так что я
tPsqlInput --> tFilterRow --> tMap --> tMysqlOutput
Однако я получаю сообщение об ошибке: Duplicate entry 'Ocythoe tuberculata' for key 'bio_taxons_name_sci_unique'
Если я помещаю компонент tLogRow
непосредственно перед вставкой в MySQL, я получаю правильный вывод: Ocythoë tuberculata
и Ocythoe tuberculata
;
Я попытался напрямую вставить в базу данных:
into bio_taxons (name_sci, created_by, taxonomic_rank_id ) values ('Ocythoë', 1, 10);
И он работает и правильно вставляет это e с точками, и когда я делаю SELECT
, он показывает, что он успешно вставил строку выше.
А вот из таленда почему-то заменяет ë
(e
с двумя точками) на обычное e
(без точек).
И я не знаю, как это решить. Я попытался отредактировать соединение MySQL, но ничего не работает:
Вот текущая строка подключения mysql:
jdbc:mysql://:3306/fis?noDatetimeStringSync=true&characterEncoding=Cp1252
Я пробовал со значениями "utf8", "utf-8", "latin1" "utf8mb4", но ничего из этого не сработало...
Также в mysql:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| latin1 | latin1_swedish_ci |
+--------------------------+----------------------+