提问人:Abhishek K M 提问时间:1/10/2023 最后编辑:Abhishek K M 更新时间:1/11/2023 访问量:33
如果我们在 Postgress 中更改表的架构,序列会自动创建吗?
if we change the schema of a table in postgress will the sequence gets auto created?
问:
假设我们有一个名为 : “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
序列是否会在检查架构中自动创建?
答:
0赞
Laurenz Albe
1/10/2023
#1
序列是一个独立的数据库对象。如果更改表的架构,则序列将保留在旧架构中,并且表将继续使用它。您也可以使用更改序列的架构,默认值将继续工作(PostgreSQL 存储解析的默认表达式而不是文本)。ALTER SEQUENCE
如果您使用标识列来生成密钥,那么这一切都会变得更容易:在那里,您不必处理序列。它是自动创建的,并随表一起更改架构。
评论
1赞
1/10/2023
您可能想补充一点,这在使用列时是不同的identity
下一个:向具有重复值的列添加顺序值
评论