PostgreSQLで既にあるシーケンスを利用してテーブルを作成する方法!
PostgreSQLでテーブルを作成する際、データ型にSERIALを指定すると、
テーブル名_id_seq
のようなシーケンスが自動で作成されたりします。
しかし、
drop table テーブル名;
などで、テーブルを削除しても、先ほど自動作成されたシーケンスは自動で削除されずに残ります。
その後に、同じテーブル名でテーブルを作成しようとしてSERIAL型を使用すると、
「もうそのシーケンスあるよ!!」
という風に怒られます。
そこで、既にあるシーケンスを使用してSERIAL型のカラムを作成する必要が出てくるのですが、そのやり方は
default nextval()
を記述するだけです。
以下例です。
create table sample(
id int default nextval('sample_id_seq'),
name text,
address text,
・・・
・・
・
・
);