PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да промените кодирането на колекцията на шаблонната база данни

От документацията на PostgreSQL:

Друга често срещана причина за копиране на template0 вместо template1 е, че нови настройки за кодиране и локал могат да бъдат посочени при копиране на template0, докато копието на template1 трябва да използва същите настройки, които прави. Това е така, защото template1 може да съдържа специфични за кодирането или специфични за локал данни, докато template0 е известно, че не.

Можете да използвате само template0 за създаване на нова база данни с различно кодиране и локал:

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

Това ще работи, но това означава, че всички промени, които сте направили в template1 няма да се прилага към новосъздадената база данни.

За да промените кодирането и сортирането на template1 първо трябва да изтриете template1 и след това създайте нов шаблон template1 от template0 . Как да премахнете шаблонна база данни е описано тук. След това можете да създадете нова база данни template1 с избрано кодиране/съпоставяне и го маркирайте като шаблон, като зададете datistemplate=true (пример):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инструмент за превод на Oracle PL/SQL в Postgresql PL/pgSQL

  2. PostgreSQL изтрива цялото съдържание

  3. PostgreSQL схеми/пространства от имена с Django

  4. Извикване на функция на PostgreSQL

  5. Използване на Kubernetes за внедряване на PostgreSQL