【PostgreSQL】データベースのtemplate1、template0とはを調べてみた

2020年12月30日PostgreSQLその他

データベース「template1」とは

データベースのtemplate1とはその名の通り、データベースのテンプレートのことです。

データベースを新しく作る時(CREATE DATABASE)する時には、このテンプレートをコピーして

新しいデータベースを作っています。

データベースの一覧を取得する方法はこちらを参照

 

つまり新しいデータベースに常に入れておきたい共通関数などをここに作っておけば、

CREATE後に改めて作らなくてもよいということになる。ここは便利なところだと思う。

 

データベースの文字コードもtemplate1から引き継がれるので、

度々変更しているケースがあればここを変えてしまうのも手だろう。

 

 

データベース「template0」とは

データベースのtemplate1の他にtemplate0も存在している。

上で記述しているようにtemplate1は適宜変更を加えることを想定している。

そのためtemplate0は、(変更を加えていない)まっさらなDBのテンプレートとなる。

 

template0からデータベースを作成するには次のSQLを使用する。

※指定をしない場合は、template1から作成される

--templete0からデータベース作成する構文
CREATE DATABASE 作成するデータベース名 TEMPLATE template0;

--例:template0からデータベース名「testdb」を作成する
CREATE DATABASE testdb TEMPLATE template0;