-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.20 PostgreSQL模板数据库 #276
Comments
PostgreSQL基于模板创建数据库
基本语句:create database mydb;
该命令会以template1库为模板生成一份副本作为新database,每一个新的database都会有一个属主,它就是执行此sql命令的角色。任何一个拥有createdb权限的角色都可以创建新的database。
其中,template1称为数据库模板,数据库安装成功后会自动创见两个模板template0和template1。若新建数据库时未指定模板,则默认为template1,新建的数据库可以理解为template1的一份副本,其中包括所有数据库设置和数据文件。
切记,任何时候都不要对template0进行修改,对基于template1或自建的模板所创建的数据库来说,你不能修改其字符集编码和排序规则,如果想这么干,可以基于template0创建数据库。 |
基于模板创建数据库命令: 1.创建数据库
2.将数据库设置成模板数据库
3.参照模板数据库创建新的数据库
你可以以任何一个已存在的数据作为创建新数据库时的模板,此外,还可以将某个现存的数据标记为模板数据库。被标记为模板的数据库会被PostgreSQL禁止对其编辑或删除,若希望编辑或删除,将其改为普通数据库修改后再改回模板数据库。 |
PostgreSQL:深入理解 template1 和 template0https://blog.csdn.net/baidu_33387365/article/details/80883142 模板数据库模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。 一 关于默认模板库1.1 默认模板库为 template1
备注:建库时如果不指定 TEMPLATE 属性,默认用的是 template1 模板库. 1.2 手工指定模板库 二 template1 和 template0 的区别?数据库初始化之后, 就有了 template0, template1 库,开始时这两个库的内容是一样的, 任何时候都不要对template0模板数据库进行任何修改,因为这是原始的干净模板,如果其它模板数据库被搞坏了,基于这个数据库做一个副本就可以了。如果希望定制自己的模板数据库,那么请基于template1进行修改,或者自己另外创建一个模板数据库再修改。对基于template1或你自建的模板数据库创建的数据库来说,你不能修改其字符集编码和排序规则。template0可以。 2.1 template1 可以连接并创建对象,template0 不可以连接
备注:当然可以通过其它方法连接 template0 库,有兴趣的同学自己研究下,这里不演示了。 2.2 使用 template1 模板库建库时不可指定新的 encoding 和 locale,而 template0 可以
3 template0 库和 template1 都不可删除
备注:当然有方法删除 template1 库,而且这个操作并不危险,需要修改系统表,这里不演示了。 三 关于复制数据库之前简单介绍了 template0 和 template1 的异同,有必要介绍通过模板库复制库的操作,例如 3.1 复制库
备注:这种方法在复制数据库时提供了方便, 也可以定制自己的数据库模板, 但是这么操作有个前提,复制时源库不可以连接,复制过程中也不允许连接源库, 否则会报以下错误: 3.2 错误代码
|
postgresql创建数据库 CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ] 一个例子, 指定字符集 CREATE DATABASE wapreader
WITH OWNER = wapreader
TEMPLATE = template0
ENCODING = 'UTF8'
TABLESPACE = tbs_wapreader; |
PostgreSQL模板数据库
The text was updated successfully, but these errors were encountered: