首页 > 解决方案 > PostgresSQL 中的模板数据库

问题描述

我正在使用 PostgreSQL 来处理数据。我输入\l命令查看我当前的数据库,但已经有 2 个数据库。我死而不是自己创造它们。

它们被称为template0template1。那是什么?他们存在是为了什么?

标签: postgresql

解决方案


这些是在创建新数据库时用作模板的系统数据库。

在文档中进行了解释

CREATE DATABASE实际上是通过复制现有数据库来工作的。默认情况下,它复制名为template1. 因此,该数据库是创建新数据库的“模板”。如果您将对象添加到template1,这些对象将被复制到随后创建的用户数据库中。

[...]

还有第二个标准系统数据库,名为template0. 此数据库包含与 的初始内容相同的数据template1,即仅包含您的 PostgreSQL 版本预定义的标准对象。template0数据库集群初始化后永远不要更改。通过指示CREATE DATABASE复制template0而不是template1,您可以创建一个“原始”用户数据库,其中不包含template1.


推荐阅读