sql >> Database >  >> RDS >> PostgreSQL

Hoe de codering van de sjabloondatabaseverzameling te wijzigen

Uit PostgreSQL-documentatie:

Een andere veelvoorkomende reden voor het kopiëren van sjabloon0 in plaats van sjabloon1 is dat nieuwe coderings- en landinstellingen kunnen worden opgegeven bij het kopiëren van sjabloon0, terwijl een kopie van sjabloon1 dezelfde instellingen moet gebruiken. Dit komt omdat template1 coderingsspecifieke of locale-specifieke gegevens kan bevatten, terwijl van template0 bekend is dat dit niet het geval is.

U kunt alleen template0 . gebruiken om een ​​nieuwe database te maken met een andere codering en landinstelling:

CREATE DATABASE newdb
WITH OWNER = postgres
   ENCODING = 'UTF8'
   TABLESPACE = pg_default
   LC_COLLATE = 'zh_CN.UTF-8'
   CONNECTION LIMIT = -1
   TEMPLATE template0;

Dit werkt, maar het betekent dat alle wijzigingen die je hebt aangebracht in template1 wordt niet toegepast op nieuw aangemaakte database.

Om de codering en sortering van template1 te wijzigen je moet eerst template1 delete verwijderen en maak vervolgens een nieuwe sjabloon template1 van template0 . Hier wordt beschreven hoe u een sjabloondatabase kunt neerzetten. Vervolgens kunt u een nieuwe database maken template1 met gekozen codering/sortering en markeer het als een sjabloon door datistemplate=true in te stellen (voorbeeld):

update pg_database set datistemplate=true  where datname='template1';


  1. Stapsgewijze handleiding voor het installeren van MySQL op Windows

  2. De juiste manier om een ​​unieke beperking te implementeren die meerdere NULL-waarden in SQL Server toestaat

  3. hoe nummer naar woord te schrijven functie in sql server

  4. Heeft Oracle een equivalent van de tabelvariabelen van SQL Server?