假设我们有一个名为:“试验”,其中表格如下:
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
是否将在检查方案中自动创建序列?
1条答案
按热度按时间yshpjwxd1#
序列是一个独立的数据库对象。如果您更改表的模式,序列将保留在旧模式中,表将继续使用它。您也可以使用
ALTER SEQUENCE
更改序列的模式,默认值将继续有效(PostgreSQL存储解析的默认表达式而不是文本)。如果使用标识列生成键,所有这些都将变得更加容易:在这里,您不必关心序列,它是自动创建的,并随表更改模式。