【问题标题】:Remove autoincrement from postgresql field从 postgresql 字段中删除自动增量
【发布时间】: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 字段(不会丢失表中的当前数据)。除了删除并重新创建表之外,我该怎么做?

【问题讨论】:

    标签: sql postgresql auto-increment


    【解决方案1】:

    去掉默认值即可:

    ALTER TABLE forecastsource ALTER COLUMN source_id DROP DEFAULT;
    

    你可能还想删除序列。

    【讨论】:

    • 如果序列被创建为 SERIAL 并且由于某种原因您仍然需要它,您应该 ALTER SEQUENCE forecastsource_source_id_seq OWNED BY NONE;
    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 2012-11-18
    • 2010-10-21
    • 1970-01-01
    • 2011-01-13
    • 2013-05-12
    相关资源
    最近更新 更多