PostgreSQLで固定長を自動採番

よく聞かれるのでメモっておきます。

たとえばProductIDが0001〜9999のユニークな連番にしたいとする。
普通なら、

ProductID serial

で十分なのだが、どうしても0001,0002…としたいらしい。

いろいろやり方はあると思うが、こんな感じでどう?

CREATE SEQUENCE test_ProductID_seq;
CREATE TABLE test (
ProductID char(4) default to_char(nextval(‘test_ProductID_seq’),’FM0000′)),


PRIMARY KEY (ProductID)
);
CREATE UNIQUE INDEX test_ProductID_key on test (ProductID);

なんかもっと良いやりかたあったら教えてください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中