前言:PG初始化之后自带模板库template0和template1,那我们在平时使用过程中有什么区别呢。
1. template0与template1是否都可以连接
postgres=# \connect template0 致命错误: 数据库 "template0" 当前不接受联接 保留上一次连接 postgres=# \connect template1 您现在已经连接到数据库 "template1",用户 "postgres".
复制
template0是不能直接连接使用的;
template1则可以,出于安全考虑,一般会删除默认的postgres数据库,但我们想连到一个库,却不知道或不记得数据库名称了,这时可以连接template1,进去后在使用\l查看数据库列表。
2. template0与template1是否可以修改
template0是一个干净的模板库,不能修改;
template1可以定制修改,比如创建extension或者oracle相关的兼容视图及函数等,后续再创建database时,默认以template1为模板将继承过来。
3. template0与template1是否可以删除
postgres=# drop database template1; 错误: 无法删除模板数据库 postgres=# alter database template1 is_template false; ALTER DATABASE postgres=# drop database template1; DROP DATABASE
复制
都可以删除,只要把is_template属性设置为false,即可删除。
关于is_template属性:如果设置了这个标志,那么该数据库可以被任何有 CREATEDB权限的用户作为模板库使用(克隆复制);如果没有被设置,那么只有超级用户和该数据库的拥有者可以克隆复制。
4. template0与template1是否可以指定新的编码
postgres=# CREATE DATABASE clocaledb WITH ENCODING 'SQL_ASCII' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template1; 错误: 新的编码(SQL_ASCII)与模板数据库(UTF8)的编码不兼容 提示: 在模版数据库中使用同一编码,或者使用template0作为模版. postgres=# CREATE DATABASE clocaledb WITH ENCODING 'SQL_ASCII' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0; CREATE DATABASE --其他例子 CREATE DATABASE englishdb WITH ENCODING 'UTF8' LC_COLLATE='en_GB.UTF8' LC_CTYPE='en_GB.UTF8' TEMPLATE=template0; --简体中文字符集 CREATE DATABASE chinadb WITH ENCODING 'EUC_CN' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0; --简体中文字符集 CREATE DATABASE chinadb2 WITH ENCODING 'EUC_CN' LC_COLLATE='zh_CN' LC_CTYPE='zh_CN' TEMPLATE=template0;
复制
当且仅当用template0作为模板数据库时可指定新的编码(这里指server_encoding)
PG被支持的字符集参考http://www.postgres.cn/docs/10/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED
注意:新的编码和区域设置要对应,否则会报错:
ERROR: encoding “XXX” does not match locale “XXX”
往期回顾
- PostgreSQL外部表插件oracle_fdw
- PG实践学习笔记
- PostgreSQL元命令之connect
- PostgreSQL递归查询
- PostgreSQL源码编译dblink
- PostgreSQL11及以上集成orafce
保持联系
从2019年12月开始写第一篇文章,分享的初心一直在坚持,本人现在组建了一个PG乐知乐享交流群,欢迎关注我文章的小伙伴进群吹牛唠嗑,交流技术,互赞文章。
如果群二维码失效可以加我微信。
最后修改时间:2022-10-23 10:33:58
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
1568次阅读
2025-04-21 16:58:09
9.9 分高危漏洞,尽快升级到 pgAdmin 4 v9.2 进行修复
严少安
384次阅读
2025-04-11 10:43:23
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
转发有奖 | PostgreSQL 16 PGCM高级认证课程直播班招生中!
墨天轮小教习
182次阅读
2025-04-14 15:58:34
中国PostgreSQL培训认证体系新增PGAI应用工程师方向
开源软件联盟PostgreSQL分会
179次阅读
2025-05-06 10:21:13
PG生态赢得资本市场青睐:Databricks收购Neon,Supabase融资两亿美元,微软财报点名PG
老冯云数
138次阅读
2025-05-07 10:06:22
SQL 优化之 OR 子句改写
xiongcc
135次阅读
2025-04-21 00:08:06
告别老旧mysql_fdw,升级正当时
NickYoung
116次阅读
2025-04-29 11:15:18
PostgreSQL中文社区亮相于第八届数字中国峰会
PostgreSQL中文社区
101次阅读
2025-05-07 10:06:20
PostgreSQL的dblink扩展模块使用方法
szrsu
101次阅读
2025-04-24 17:39:30