Postgres10以降
serial
列(以下を参照)は変更されません。しかし、IDENTITY
列について考えてみましょう。Postgres 10は、この標準SQL機能を実装しています。
のマニュアルのCREATE TABLE
基本的な構文と情報。主な著者であるPeterEisentrautの
このブログエントリの詳細な説明。
IDENTITY
列のあるテーブルを作成する
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
IDENTITY
既存のテーブルに列を追加します
テーブルには行が入力されている場合とされていない場合があります。
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
同時にそれをPKにするために(テーブルはまだPKを持つことができません):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
関連している:
列serial
に置き換えますIDENTITY
見る:
Postgres9.6以前
(または実際には任意のバージョン。)代わりに疑似データ型
を
使用してください。serial
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
シーケンスオブジェクトを自動的に作成してアタッチし、シーケンスからDEFAULT
toを設定しnextval()
ます。それはあなたが必要とするすべてをします。
この例では小文字の識別子を使用しました。Postgresでの生活を楽にします。