# Nekonzistence collations (MySQL, MariaDB)

[![question_mark_1.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/question-mark-1.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/question-mark-1.png)

### Otázka

Co mám dělat, když mám v databázi nekonzistenci collations (MySQL, MariaDB)?

- - - - - -

### Odpověď

**Nasledující platí jen pro MySQL a MariaDB databázi :**

Od verze 8.2 musí být collation schématu konzistentní s collation jednotlivých tabulek a sloupců jinak Infoport nedovolí zmigrovat. Admin databáze musí sjednotit collation na schématu.

<span style="text-decoration: underline;">Pro zobrazení collation na sloupečkách použijte query: </span>

SELECT DISTINCT COLLATION\_NAME

FROM information\_schema.columns

WHERE TABLE\_SCHEMA = 'schemaName' AND TABLE\_NAME &lt;&gt; '\_\_EfMigrationsHistory' AND COLLATION\_NAME IS NOT null

<span style="text-decoration: underline;"><span style="color: #000000;">Pro zobrazení collation na tabulkách použijte query: </span></span>

SELECT DISTINCT TABLE\_COLLATION

FROM information\_schema.`TABLES`

WHERE TABLE\_SCHEMA = 'schemaName' AND TABLE\_NAME &lt;&gt; '\_\_EfMigrationsHistory'

<span style="text-decoration: underline;">Pro zobrazení collation na schématu použijte query: </span>

SELECT DEFAULT\_COLLATION\_NAME

FROM information\_schema.SCHEMATA

WHERE SCHEMA\_NAME = 'schemaName' AND TABLE\_NAME &lt;&gt; '\_\_EfMigrationsHistory'

<span style="text-decoration: underline;">Pro zobrazení tabulek, sloupců a jejich collation použijte query: </span>

SELECT TABLE\_NAME, COLUMN\_NAME, COLLATION\_NAME

FROM information\_schema.columns

WHERE TABLE\_SCHEMA = 'schemaName'

 AND COLLATION\_NAME IS NOT NULL

 AND TABLE\_NAME &lt;&gt; '\_\_EfMigrationsHistory'

GROUP BY TABLE\_NAME, COLUMN\_NAME, COLLATION\_NAME

<span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-contrast="auto">Sjednoťte prosím collation a znovu spusťte Infoport.</span>

<span data-contrast="auto">Pro sjednocení můžete použít tyto scripty:</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-contrast="auto">Pro každou tabulku:</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span><span data-contrast="none">SELECT</span><span data-contrast="none"> CONCAT(</span><span data-contrast="none">'ALTER TABLE `'</span><span data-contrast="none">, TABLE\_NAME, </span>   
<span data-contrast="none">'` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4\_unicode\_ci;'</span><span data-contrast="none">) </span>   
<span data-contrast="none">AS</span> <span data-contrast="none">'USE `DATABASE\_NAME`;'</span>   
<span data-contrast="none">FROM INFORMATION\_SCHEMA.TABLES </span>   
<span data-contrast="none">WHERE TABLE\_SCHEMA </span><span data-contrast="none">=</span> <span data-contrast="none">'DATABASE\_NAME'</span>   
<span data-contrast="none">AND</span><span data-contrast="none"> TABLE\_TYPE </span><span data-contrast="none">LIKE</span> <span data-contrast="none">'BASE TABLE'</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-contrast="auto">Pro každý sloupec:</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-contrast="none">SELECT</span><span data-contrast="none"> CONCAT(</span><span data-contrast="none">'ALTER TABLE `'</span><span data-contrast="none">, TABLE\_NAME, </span><span data-contrast="none">'` MODIFY COLUMN `'</span><span data-contrast="none">, COLUMN\_NAME,</span><span data-contrast="none">'` '</span><span data-contrast="none">, </span>   
<span data-contrast="none"> DATA\_TYPE, IF(CHARACTER\_MAXIMUM\_LENGTH </span><span data-contrast="none">IS</span> <span data-contrast="none">NULL</span>   
<span data-contrast="none">OR</span><span data-contrast="none"> DATA\_TYPE </span><span data-contrast="none">LIKE</span> <span data-contrast="none">'longtext'</span><span data-contrast="none">, </span><span data-contrast="none">''</span><span data-contrast="none">, CONCAT(</span><span data-contrast="none">'('</span><span data-contrast="none">, CHARACTER\_MAXIMUM\_LENGTH, </span>   
<span data-contrast="none">')'</span><span data-contrast="none">) </span>   
<span data-contrast="none"> ), </span><span data-contrast="none">' COLLATE utf8mb4\_unicode\_ci;'</span><span data-contrast="none">) </span><span data-contrast="none">AS</span> <span data-contrast="none">'USE `DATABASE\_NAME`;'</span>   
<span data-contrast="none">FROM INFORMATION\_SCHEMA.COLUMNS </span>   
<span data-contrast="none">WHERE TABLE\_SCHEMA </span><span data-contrast="none">=</span> <span data-contrast="none">'DATABASE\_NAME'</span>   
<span data-contrast="none">AND</span><span data-contrast="none"> (</span><span data-contrast="none">SELECT</span><span data-contrast="none"> INFORMATION\_SCHEMA.TABLES.TABLE\_TYPE </span>   
<span data-contrast="none">FROM</span><span data-contrast="none"> INFORMATION\_SCHEMA.TABLES </span>   
<span data-contrast="none">WHERE</span><span data-contrast="none"> INFORMATION\_SCHEMA.TABLES.TABLE\_SCHEMA </span><span data-contrast="none">=</span>   
<span data-contrast="none"> INFORMATION\_SCHEMA.COLUMNS.TABLE\_SCHEMA </span>   
<span data-contrast="none">AND</span><span data-contrast="none"> INFORMATION\_SCHEMA.TABLES.TABLE\_NAME </span><span data-contrast="none">=</span>   
<span data-contrast="none"> INFORMATION\_SCHEMA.COLUMNS.TABLE\_NAME </span>   
<span data-contrast="none"> LIMIT </span><span data-contrast="none">1</span><span data-contrast="none">) </span><span data-contrast="none">LIKE</span> <span data-contrast="none">'BASE TABLE'</span>   
<span data-contrast="none">AND</span><span data-contrast="none"> DATA\_TYPE </span><span data-contrast="none">IN</span><span data-contrast="none"> ( </span><span data-contrast="none">'char'</span><span data-contrast="none">, </span><span data-contrast="none">'varchar'</span><span data-contrast="none"> ) </span><span data-contrast="none">/\* include other types if necessary \*/</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span>

<span data-contrast="auto">Pro více informací se obraťte na nás helpdesk [https://www.dphelpdesk.cz/](https://www.dphelpdesk.cz/) .</span>