プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

PostgreSQLで既にあるシーケンスを利用してテーブルを作成する方法!

サクウェブTVはコチラ↓↓↓
サクウェブTV

PostgreSQLでテーブルを作成する際、データ型にSERIALを指定すると、

テーブル名_id_seq

のようなシーケンスが自動で作成されたりします。

 

しかし、

drop table テーブル名;

などで、テーブルを削除しても、先ほど自動作成されたシーケンスは自動で削除されずに残ります。

 

その後に、同じテーブル名でテーブルを作成しようとしてSERIAL型を使用すると、

「もうそのシーケンスあるよ!!」

という風に怒られます。

 

そこで、既にあるシーケンスを使用してSERIAL型のカラムを作成する必要が出てくるのですが、そのやり方は

default nextval()

を記述するだけです。

以下例です。

create table sample(
    id int default nextval('sample_id_seq'),
    name text,
    address text,
    ・・・
    ・・
    ・
    ・
);