PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana mengubah pengkodean koleksi database template

Dari dokumentasi PostgreSQL:

Alasan umum lainnya untuk menyalin template0 daripada template1 adalah bahwa penyandian baru dan pengaturan lokal dapat ditentukan saat menyalin template0, sedangkan salinan template1 harus menggunakan pengaturan yang sama. Ini karena template1 mungkin berisi data khusus enkode atau khusus lokal, sedangkan template0 diketahui tidak.

Anda hanya dapat menggunakan template0 untuk membuat database baru dengan enkode dan lokal yang berbeda:

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

Ini akan berhasil, namun itu berarti bahwa setiap perubahan yang Anda buat pada template1 tidak akan diterapkan ke database yang baru dibuat.

Untuk mengubah penyandian dan susunan template1 Anda harus terlebih dahulu menghapus template1 lalu buat template baru template1 dari template0 . Cara drop database template dijelaskan di sini. Kemudian Anda dapat membuat database baru template1 dengan penyandian/penyusunan yang dipilih dan tandai sebagai templat dengan menyetel datistemplate=true (contoh):

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. Kesalahan sintaks tabel drop postgres

  2. Mengapa PostgreSQL tidak mengembalikan nilai nol ketika kondisinya <> true

  3. Versi PostgreSQL mana yang saya jalankan?

  4. Bagaimana age() Bekerja di PostgreSQL

  5. Driver JDBC PostgreSQL dengan Android