news 2026/5/10 12:20:21

PG中 template0 与 template1区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PG中 template0 与 template1区别

文章目录

      • 1. 用途定位
      • 2. 内容差异
      • 3. 灵活性
      • 4. 典型使用场景
      • 5. 关键限制
      • 总结一句话:
    • 示例

1. 用途定位

特性template0template1
设计目的提供一个“原始、干净”的模板作为默认模板,支持用户自定义
是否可修改不可修改(系统保留)可以被用户修改

2. 内容差异

特性template0template1
初始状态完全干净,无任何用户对象可能包含用户自定义对象(如表、函数等)
是否可继承内容不会继承任何用户定义的内容会继承用户在其中添加的所有对象

3. 灵活性

特性template0template1
字符编码/区域设置支持自定义(可更改)固定为初始化时的值(不可更改)
适用场景创建完全独立、无依赖的数据库复用已有配置或对象的数据库

4. 典型使用场景

  • 使用template0

    • 需要创建一个全新的、干净的数据库。
    • 需要指定不同于默认的字符编码(如SQL_ASCII)或区域设置(如LC_COLLATE = 'C')。
    • 不希望继承任何用户自定义的对象或配置。
  • 使用template1

    • 希望复用template1中已有的配置、扩展或对象。
    • 创建常规数据库,无需特殊编码或区域设置要求。

5. 关键限制

  • 如果需要自定义字符编码(ENCODING)或区域设置(LC_COLLATE/LC_CTYPE),只能使用template0
  • 使用template1时,其编码和区域设置是固定的,无法更改。

总结一句话:

  • template0:干净、灵活,适合创建特殊需求的数据库。
  • template1:默认、可定制,适合复用现有配置的场景。

示例

template1=# create database xx WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C';CREATEDATABASEtemplate1=# create database xx2 WITH TEMPLATE = template1 ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C';CREATEDATABASEtemplate1=# \l xx*ListofdatabasesName|Owner|Encoding|Collate|Ctype|ICU Locale|Locale Provider|Accessprivileges------+----------+----------+---------+-------+------------+-----------------+-------------------xx|postgres|UTF8|C|C||libc|xx2|postgres|UTF8|C|C||libc|(2rows)template1=# create database xx3 WITH TEMPLATE = template1 ENCODING = 'SQL_ASCII' LC_COLLATE = 'C' LC_CTYPE = 'C';ERROR: new encoding(SQL_ASCII)isincompatiblewiththe encodingofthe templatedatabase(UTF8)HINT:Usethe same encodingasinthe templatedatabase,orusetemplate0astemplate.template1=#template1=# create database xx3 WITH TEMPLATE = template1 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF8' LC_CTYPE = 'C';ERROR: new collation(en_US.UTF8)isincompatiblewiththe collationofthe templatedatabase(C)HINT:Usethe same collationasinthe templatedatabase,orusetemplate0astemplate.template1=#template1=#
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 0:11:19

轻量级容器环境Colima

Colima是一个在macOS(和Linux)上运行容器的最小化设置工具,它通过在虚拟机中运行容器,为开发者提供了一个轻量级的本地容器环境。 诞生背景:为什么需要Colima? Colima源于Lima项目,该项目由一群…

作者头像 李华
网站建设 2026/5/4 7:01:12

征程 6 | power management sample

1. 功能概述 本文通过示例演示如何通过相关接口对启动标志进行读写,以及对 main 域电源进行控制与查询。相关 API 定义,请查询 电源管理用户手册 API 部分 。 2. main 域上下电及状态查询示例代码 请参考版本中 Service/Cmd_Utility/power_sample_cmd…

作者头像 李华
网站建设 2026/5/6 10:17:26

网安公司,亏麻了!

又到一年一度的“网安比惨季”。每年这个时候,上市公司一发业绩预告,朋友圈就像开了弹幕:“亏得真稳定”、“一年更比一年凉”、“这行业还有救吗?”我把2025年的成绩单摊开一看,好家伙——这哪是财报,分明…

作者头像 李华
网站建设 2026/5/1 10:07:39

晋升名单其实早就在答辩前定好了?答辩只是走个过场

刚看到个贴子,楼主说自己为了晋升,熬夜做了20页PPT,把一年成绩吹到天上去。结果评委只问了一句:你在项目里的不可替代性是什么?更扎心的是,后来才知道晋升名单早就定好了,答辩纯属走流程。我的看…

作者头像 李华
网站建设 2026/5/9 7:49:29

iPhone17大热,网传有国产手机品牌的旗舰手机最高跌超三成

由于苹果的iPhone17卖得实在太好,一些国产手机品牌总是喜欢对标iPhone17,眼见着在整体销量方面落后太多,于是他们不断缩短时间周期,例如从季度缩短到月份,甚至会时不时拿周销量来证明自己并未必iPhone17差太多&#xf…

作者头像 李华
网站建设 2026/5/1 13:31:19

CANN hixl 在单机多卡场景下的 PCIe 带宽优化策略

相关链接: CANN 组织主页:https://atomgit.com/cannhixl 仓库地址:https://atomgit.com/cann/hixl 前言 在单机多设备(Multi-Device)AI 训练与推理系统中,设备间的数据交换常通过 PCIe 总线完成。然而&am…

作者头像 李华