【发布时间】:2014-09-22 11:07:56
【问题描述】:
我有一个表 linelevelpmts,其中有一列 seq (Int4) 将用作序列。
我知道我可以删除列并将其重新创建为序列类型,但我可以修改现有列以用作序列。
ALTER TABLE "public"."linelevelpmts" ALTER COLUMN "seq" SET DEFAULT nextval('linelevelpmts_seq_seq'::regclass);
此代码生成错误:关系 linelevelpmts_seq_seq 不存在。
【问题讨论】:
-
“将列用作序列”并没有真正的意义。您不会像序列一样使用列。您从序列中提供它们的默认值。
-
该表是在数据导入期间以编程方式创建的。我知道我可以删除表并重新创建它,我只是想知道是否有其他方法。
-
@kipsoft 序列不是列。它是数据库中的一个单独对象,用于生成序列号(无论出于何种目的)。序列可以用作列的默认值(称为
SERIAL数据类型)。
标签: postgresql sequence