我想创建一个新架构 ( NPS
)。
我有现有的架构(public
)。
创建后NPS
,我想将模式的所有内容复制public
到NPS
没有表数据的模式中。
并且现有的public
序列必须在NPS
模式中设置为 0。
非常感谢您的评论和回答。
我想创建一个新架构 ( NPS
)。
我有现有的架构(public
)。
创建后NPS
,我想将模式的所有内容复制public
到NPS
没有表数据的模式中。
并且现有的public
序列必须在NPS
模式中设置为 0。
非常感谢您的评论和回答。
您用于pg_dump -F c -s -n public <yourdatabase>
仅获取对象定义。
将转储恢复到不同的数据库,将架构重命名public
为nps
(不要使用大写!),根据需要设置架构权限并再次转储。
将转储还原到原始数据库。
要回答你的问题是否会重置序列,一个简单的实验会告诉你它确实:
CREATE SEQUENCE testseq;
SELECT nextval('testseq');
nextval
---------
1
(1 row)
SELECT nextval('testseq');
nextval
---------
2
(1 row)
然后转储并被说服:
pg_dump -n laurenz -t testseq -s test
...
CREATE SEQUENCE laurenz.testseq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE laurenz.testseq OWNER TO laurenz;
--
-- PostgreSQL database dump complete
--