【PostgreSQL】シーケンス(serial)を作成する

PostgreSQL入門

スポンサーリンク

シーケンス(データ型のserial)とは

データ型のserialとは数値の列で、INSERTで値を入れなくとも、自動で採番される列です。

作成した列は、pgAdminの「シーケンス」で確認できます。

自動で1から採番され、+1ずつされます。また範囲は、1~2,147,483,647の間になります。

 

CREATE文での書き方

CREATE文での列定義は次のように使います。

--CREATE文での列定義の方法
CREATE TABLE テーブル名
(・・・
seq serial,  -- 列の定義
・・・)

 

シーケンス値の初期化

シーケンス値は、次のSELECT文を実行することで初期化できます。

初期化後はその値から再度カウントアップを始めます。(初期値は1でなくてもOKです)

--シーケンス「seq_name」を1に設定
--"1"を変更すればその値から再度カウントアップします
select SETVAL('seq_name', 1 , false);

 

動作確認

実際の動きを確認してみます。

①CREATE文でテーブルを作成します

CREATE TABLE test
(
	seq serial NOT NULL,  -- serial列
	hoge character(10),
	CONSTRAINT pk_test PRIMARY KEY (seq)
);

 

 

②INSERT文でデータを登録する

serial列に値を設定しないデータ登録を実行します。

 

③SELECT文で登録データを確認する

SELECT文を実行し、serial列の値を確認する。

serial列にデータが登録されていることが確認できました。