postgresql 如果我们在postgress中改变了一个表的模式,这个序列会自动创建吗?

uqjltbpv  于 2023-01-13  发布在  PostgreSQL
关注(0)|答案(1)|浏览(197)

假设我们有一个名为:“试验”,其中表格如下:

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列是一个Sequence,它已经在这个模式中创建了。
现在,如果我们创建一个名为“check”的新模式,并将详细信息表模式更改为

create schema check
alter table test.details set schema check

是否将在检查方案中自动创建序列?

yshpjwxd

yshpjwxd1#

序列是一个独立的数据库对象。如果您更改表的模式,序列将保留在旧模式中,表将继续使用它。您也可以使用ALTER SEQUENCE更改序列的模式,默认值将继续有效(PostgreSQL存储解析的默认表达式而不是文本)。
如果使用标识列生成键,所有这些都将变得更加容易:在这里,您不必关心序列,它是自动创建的,并随表更改模式。

相关问题