あるエンジニアの独り言
PostgresSQLで自動採番
最終更新:
paladin
-
view
2008/02/28
プライベート辞書の課題のひとつである、ID自動採番の方法論のひとつとして
テーブルのIDフィールドをオートナンバーにするという方法を検討する為
PostgresSQLのidフィールドをserial型に変更してみる。
テーブルのIDフィールドをオートナンバーにするという方法を検討する為
PostgresSQLのidフィールドをserial型に変更してみる。
現在のテーブル定義は
- CREATE TABLE "dictionary"
- (
- id INTEGER NOT NULL,
- DATE text,
- english text,
- japanese text,
- note text,
- CONSTRAINT dictionary_pkey PRIMARY KEY (id)
- )
これを
- CREATE TABLE "dictionary"
- (
- id serial NOT NULL,
- english text,
- japanese text,
- note text,
- DATE TIMESTAMP,
- CONSTRAINT dictionary_pkey PRIMARY KEY (id)
- )
に変更してテーブルを作り直す。
※dateフィールドの変更は別件
※dateフィールドの変更は別件
insert文にid以外を指定してクエリ実行
- INSERT INTO dictionary (english,japanese,note,DATE)
- VALUES('japanese','日本語','',now()
-
NOT NULL制約を設定しているIDフィールドが空でもクエリは成功。
結果を確認すると・・・
結果を確認すると・・・

予定通り、自動的にIDが振られている。
実験は想定どおりに成功したので、後はプログラム側から今回のような
クエリを生成して実行できるように修正すればよい・・・はず。
クエリを生成して実行できるように修正すればよい・・・はず。
とりあえず今回はここまで。
添付ファイル