如果我创建了一个数据库<li><a href="/orderHistory">History</a></li>
:
如果我像这样创建数据库foo
:
foobar
数据库CREATE DATABASE foobar WITH ENCODING 'UTF8' TEMPLATE foo;
是否有:
foobar
foo
[[附录]
我编写了几个C库扩展,它们作为共享库加载到我用作模板的数据库中。我主要担心的是这些库是否也会被后续数据库基于模板加载。
答案 0 :(得分:1)
为什么不试试自己?..
t=# create database foo;
CREATE DATABASE
Time: 426.799 ms
t=# \c foo
You are now connected to database "foo" as user "postgres".
数据:
foo=# create table b(i int);
CREATE TABLE
Time: 3.794 ms
foo=# insert into b select 43;
INSERT 0 1
Time: 13.608 ms
FN():
foo=# create function a() returns int as $$select 42;$$ language sql;
CREATE FUNCTION
Time: 1.548 ms
延伸:
foo=# create extension pg_stat_statements;
CREATE EXTENSION
Time: 4.275 ms
使用模板:
foo=# create database boo template foo;
CREATE DATABASE
Time: 640.328 ms
foo=# \c boo
You are now connected to database "boo" as user "postgres".
数据在那里:
boo=# select count(1) from b;
count
-------
1
(1 row)
Time: 1.569 ms
扩展名可用:
boo=# select count(1) from pg_stat_statements;
count
-------
4927
(1 row)
Time: 1023.658 ms
fn()返回相同的结果:
boo=# select a();
a
----
42
(1 row)
Time: 0.399 ms
答案 1 :(得分:0)
您需要将数据库foo设置为模板数据库。
ALTER DATABASE foo IS_TEMPLATE true;
然后您可以使用它来创建新数据库
CREATE DATABASE foobar TEMPLATE foo;