sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan kan jeg ændre databasekodning for en PostgreSQL-database ved hjælp af sql eller phpPgAdmin?

Kort sagt kan du ikke gøre dette med kun phpPgAdmin eller SQL uden at risikere eksisterende datakorruption .Du skal eksportere alle data, oprette database med korrekt kodning og gendanne eksporterede data.

Sådan skal du gå videre:

  1. opret databasedump :

    pg_dump your_database > your_database.sql

    dette vil gemme din database i sql-format, i den kodning, du har i øjeblikket.

  2. slet database (eller omdøb det):

    DROP DATABASE your_database

    hvis du har nok lagerplads til at gøre det, anbefaler jeg, at du forlader den gamle database, indtil du sikrer dig, at alt er OK med den nye, omdøb det:

    ALTER DATABASE your_database RENAME TO your_database_backup;

  3. opret database med ny kodning :

    CREATE DATABASE your_database WITH ENCODING 'UNICODE' TEMPLATE=template0;

  4. importer data fra dump oprettet før :

    PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database

    du skal indstille psql-klientkodning til en du havde i den gamle database.

Ændring af kodning undervejs er ikke mulig, da det ville kræve omskrivning af de fleste interne databasedata, hvilket næsten svarer til at genskabe db som jeg beskrev.

Det er muligt blot at ændre interne postgres-oplysninger om databasen, og alle nye data efter denne ændring vil blive gemt korrekt, men dine eksisterende data kan blive beskadiget .



  1. Sådan returneres en liste over tilgængelige tegnsæt i MySQL

  2. Implementering af MySQL, MariaDB, Percona Server, MongoDB eller PostgreSQL - gjort nemt med ClusterControl

  3. Sådan får du forbindelsesstrengen fra en database

  4. PHP BOB - Antal rækker