从 postgresql 字段中删除自动增量
Posted
技术标签:
【中文标题】从 postgresql 字段中删除自动增量【英文标题】:Remove autoincrement from postgresql field 【发布时间】:2016-11-20 09:37:47 【问题描述】:我在数据库中有一个现有表,来自其他几个人的 FK,SQL 如下:
CREATE TABLE forecastsource (
source_id integer DEFAULT nextval(('public.forecastsource_source_id_seq'::text)::regclass) NOT NULL,
source_name character varying NOT NULL
);
我想从 id 字段中删除自动增量,并将其移动为 int 字段(不会丢失表中的当前数据)。除了删除并重新创建表之外,我该怎么做?
【问题讨论】:
【参考方案1】:去掉默认值即可:
ALTER TABLE forecastsource ALTER COLUMN source_id DROP DEFAULT;
你可能还想删除序列。
【讨论】:
如果序列被创建为 SERIAL 并且由于某种原因您仍然需要它,您应该 ALTER SEQUENCE forecastsource_source_id_seq OWNED BY NONE;以上是关于从 postgresql 字段中删除自动增量的主要内容,如果未能解决你的问题,请参考以下文章