0

我想创建一个新架构 ( NPS)。

我有现有的架构(public)。

创建后NPS,我想将模式的所有内容复制publicNPS没有表数据的模式中。

并且现有的public序列必须在NPS模式中设置为 0。

非常感谢您的评论和回答。

4

1 回答 1

0

您用于pg_dump -F c -s -n public <yourdatabase>仅获取对象定义。

将转储恢复到不同的数据库,将架构重命名publicnps(不要使用大写!),根据需要设置架构权限并再次转储。

将转储还原到原始数据库。

要回答你的问题是否会重置序列,一个简单的实验会告诉你它确实:

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
--
于 2018-11-27T05:51:02.087 回答