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

Jak mohu změnit kódování databáze pro databázi PostgreSQL pomocí sql nebo phpPgAdmin?

Stručně řečeno, nemůžete to udělat pouze s phpPgAdmin nebo SQL, aniž byste riskovali poškození stávajících dat .Musíte exportovat všechna data, vytvořit databázi se správným kódováním a obnovit exportovaná data.

Takto byste měli postupovat:

  1. vytvořit výpis databáze :

    pg_dump your_database > your_database.sql

    tím se uloží vaše databáze ve formátu sql, v kódování, které aktuálně máte.

  2. smazat databázi (nebo jej přejmenujte):

    DROP DATABASE your_database

    pokud na to máte dostatek místa, doporučuji ponechat starou databázi, dokud se neujistíte, že je vše v pořádku s novou, přejmenujte to:

    ALTER DATABASE your_database RENAME TO your_database_backup;

  3. vytvořit databázi s novým kódováním :

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

  4. importujte data z dříve vytvořeného výpisu :

    PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database

    musíte nastavit kódování klienta psql na kódování, které jste měli ve staré databázi.

Změna kódování za běhu není možná, protože by to vyžadovalo přepsání většiny interních databázových dat, což se téměř rovná opětovnému vytvoření db, jak jsem popsal.

Je možné pouze změnit interní postgresové informace o databázi a všechna nová data po této změně budou správně uložena, avšak vaše stávající data mohou být poškozena .



  1. Jak zjistím, kdy je můj kontejner mysql ukotvený a mysql připraven k přijímání dotazů?

  2. Pomůcka:Vygenerujte proceduru PL/SQL pro export dat z tabulky za 2 minuty

  3. Pochopení velikosti úložiště „čas“ na serveru SQL Server

  4. Jak načíst data JSON z MySQL?