sql >> Databáze >  >> RDS >> PostgreSQL

Chyba neplatná sekvence bajtů při obnově databáze PostgreSQL

Starší verze PostgreSQL nebyly tak přísné na shodu s UTF-8 než novější verze. Pravděpodobně se pokoušíte obnovit data obsahující neplatné UTF-8 z takové starší verze do novější verze.

Neplatné řetězce musí být vyčištěny. Tento postup můžete použít pro každou tabulku, která nebyla importována kvůli těmto chybám:

  1. Extrahujte obsah tabulky ze souboru výpisu do souboru SQL ve formátu prostého textu:

    pg_restore --table=tablename --data-only dumpfile >plaintext.sql
    
  2. Odstraňte neplatné znaky v textovém editoru nebo automaticky pomocí iconv :

    iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
    
  3. Importujte dezinfikovaná data:

    psql dbname < plaintext-cleaned.sql
    



  1. Výuková cesta MySQL

  2. Odečtěte dva záznamy stejného sloupce v tabulce

  3. INNER JOIN stejný stůl

  4. MySQL Levé spojení s dotazem na křížové spojení