【PostgreSQL】データベースのtemplate1、template0とはを調べてみた
データベース「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;