PG模板数据库之template1 和 template0

2    1186    9

Tags:

👉 本文共约2596个字,系统预计阅读时间或需10分钟。

简介

参考官网:http://postgres.cn/docs/13/manage-ag-templatedbs.html

template1和template0是PostgreSQL的模板数据库。所谓模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。PostgreSQL安装好以后会默认附带两个模板数据库:template0和template1。

PostgreSQL默认初始化数据库后,模板数据库template0和template1包含的内容是一致的。

在PG中创建数据库时,默认是从template1模板数据库中克隆出来的!!

我们知道创建数据库时的语法为:

如:create database aaaa with template='template0' encoding ='UTF8' lc_collate='C' lc_ctype='en_US.utf8' owner='test123';
其中template表示模板数据库。建库时如果不指定 TEMPLATE 属性,默认用的是 template1 模板库。

template1和template0的区别是什么?

区别主要有两点:

1、template1 可以连接,template0 不可以连接。

2、使用 template1 模板库建库时不可指定新的 encoding 和 locale,而 template0 可以。这里的“新的”指的是非UTF8

使用\l 命令查看template0和template1的encoding和locale

我们看到template0和template1的encoding是UTF8、Collate为en_US.utf8、Ctype为en_US.utf8

注:template0和template1都不能被删除(需要特殊手段)。

常用的字符集参考:http://postgres.cn/docs/13/multibyte.html

怎么创建模板数据库?

除了template0和template1,能创建自定义模板库吗?可以。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

2 条回复

  1. Avatar photo 小麦苗说道:

    在PG中,服务端不支持汉字字符集GBK和GB18030

发表回复