如果我们在 Postgress 中更改表的架构,序列会自动创建吗?

if we change the schema of a table in postgress will the sequence gets auto created?

提问人:Abhishek K M 提问时间:1/10/2023 最后编辑:Abhishek K M 更新时间:1/11/2023 访问量:33

问:

假设我们有一个名为 : “test” 的架构,其中有一个表,如下所示:

CREATE TABLE IF NOT EXISTS test.details
(
    id integer NOT NULL DEFAULT nextval('test.details_id_seq'::regclass),
    username character varying(50) COLLATE pg_catalog."default" NOT NULL
)

正如我们所看到的,id 列是一个已经在此架构中创建的序列

现在,如果我们创建一个名为“check”的新模式,并将详细信息表模式更改为

create schema check
alter table test.details set schema check

序列是否会在检查架构中自动创建?

PostgreSQL 模式 序列

评论


答:

0赞 Laurenz Albe 1/10/2023 #1

序列是一个独立的数据库对象。如果更改表的架构,则序列将保留在旧架构中,并且表将继续使用它。您也可以使用更改序列的架构,默认值将继续工作(PostgreSQL 存储解析的默认表达式而不是文本)。ALTER SEQUENCE

如果您使用标识列来生成密钥,那么这一切都会变得更容易:在那里,您不必处理序列。它是自动创建的,并随表一起更改架构。

评论

1赞 1/10/2023
您可能想补充一点,这在使用列时是不同的identity