template0和template1为postgresql数据库的模板数据库,新建的数据库默认使用template1作为模板。template0和template1的区别在于template0无法修改,因此你可以修改template1数据库以定制新创建的数据库。
template数据库无法被删除(drop),会报错。
你可以使用以下语句查询哪些数据库是模板数据库:
select datname ,datistemplate from pg_database where datistemplate='t';
#datistemplate='t'或'true'均可查询出来。
如果想将指定数据库设置为模板数据库:
UPDATE pg_database SET datistemplate='t' where datname='表名';
#datistemplate='t'或'true'或true均可。
如果想指定某个数据库作为模板数据库:
create database 数据库名 template 模板数据库名;
以上命令中,模板数据库名可以是非模板数据库,区别在于模板数据库无法被drop。但被当作模板的数据库有用户连接时以上命令会报错。