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

2021年8月1日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);

--3つ目の引数の違い 
SELECT setval('seq_name', 1000, true);   --シーケンスは1001からカウントアップ
SELECT setval('seq_name', 1000, false);  --シーケンスは1000からカウントアップ 

 

 

 

動作確認

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

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

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

 

 

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

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

 

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

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

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

IT系に強い転職サイト・転職エージェント