■ はじめに
MySQL でいう AUTO_INCREMENT 属性みたいに 自動的に ID を付与してくれるテーブルを作る必要ができたので 調べてメモる。
目次
【1】自動ID付与 【2】連番型「SERIAL / BIGSERIAL / SMALLSERIAL」 【3】サンプル 【4】おまけ:Amazon Redshift に関して
【1】自動ID付与
PostgreSQL の場合、 連番型「SERIAL / BIGSERIAL / SMALLSERIAL」 っていう数値のデータ型を定義する。
【2】連番型「SERIAL / BIGSERIAL / SMALLSERIAL」
https://www.postgresql.jp/docs/9.2/datatype-numeric.html
https://www.postgresql.org/docs/13/datatype-numeric.html
より抜粋
型名 | 格納サイズ | 説明 | 範囲 |
---|---|---|---|
smallserial | 2バイト | 狭範囲自動整数 | 1から32767 |
serial | 4バイト | 自動増分整数 | 1から2147483647 |
bigserial | 8バイト | 広範囲自動増分整数 | 1から9223372036854775807 |
【3】サンプル
テーブル
CREATE TABLE serial_demo ( id BIGSERIAL NOT NULL, id2 SERIAL NOT NULL, id3 SMALLSERIAL NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) );
データ挿入&確認
-- データ挿入 INSERT INTO serial_demo("name") VALUES ('Mike'), ('Sam'), ('Kevin'); -- データ確認 SELECT * FROM serial_demo;
出力結果
id,id2,id3,name 1,1,1,Mike 2,2,2,Sam 3,3,3,Kevin
【4】おまけ:Amazon Redshift に関して
Redshift では対応されていない。 詳細は、以下の関連記事を参照のこと。
Amazon Redshift ~ 他DB・サービスとの違い ~
https://dk521123.hatenablog.com/entry/2021/08/29/000000
Amazon Redshift ~ 自動採番 / IDENTITY ~
https://dk521123.hatenablog.com/entry/2021/08/31/194134
参考文献
https://qiita.com/shonansurvivors/items/4522f15c5e9a30860bc5
関連記事
PostgreSQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2014/03/08/000100
Amazon Redshift ~ 他DB・サービスとの違い ~
https://dk521123.hatenablog.com/entry/2021/08/29/000000
Amazon Redshift ~ 自動採番 / IDENTITY ~
https://dk521123.hatenablog.com/entry/2021/08/31/194134