[pgsql-jp: 41386] Re: PostgreSQLでのKEY変更方法について

kasaharatt @ nttdata.co.jp kasaharatt @ nttdata.co.jp
2013年 4月 25日 (木) 18:15:39 JST


笠原と申します。

> PostgreSQLで、SERIAL PRIMARY KEY を INTEGER PRIMARY KEY に変更する方法がわからず、困っています。
> どなたかご存知の方、宜しくお願いします。

シーケンス値が自動で採られたくないのであれば、
ALTER TABLE <テーブル名> ALTER COLUMN <serial型の列名> DROP DEFAULT;
でどうですか? 


===== 以下、例

=# CREATE TABLE tbl (c1 serial PRIMARY KEY);
CREATE TABLE

=# \d tbl
                         Table "public.tbl"
 Column |  Type   |                    Modifiers
--------+---------+--------------------------------------------------
 c1     | integer | not null default nextval('tbl_c1_seq'::regclass)
Indexes:
    "tbl_pkey" PRIMARY KEY, btree (c1)


=# ALTER TABLE tbl ALTER COLUMN c1 DROP DEFAULT;
ALTER TABLE

=# \d tbl
      Table "public.tbl"
 Column |  Type   | Modifiers
--------+---------+-----------
 c1     | integer | not null
Indexes:
    "tbl_pkey" PRIMARY KEY, btree (c1)


pgsql-jp メーリングリストの案内