アットウィキロゴ
あるエンジニアの独り言
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

あるエンジニアの独り言

PostgresSQLで自動採番

最終更新:

paladin

- view
管理者のみ編集可

2008/02/28

プライベート辞書の課題のひとつである、ID自動採番の方法論のひとつとして
テーブルのIDフィールドをオートナンバーにするという方法を検討する為
PostgresSQLのidフィールドをserial型に変更してみる。

現在のテーブル定義は
  1. CREATE TABLE "dictionary"
  2. (
  3. id INTEGER NOT NULL,
  4. DATE text,
  5. english text,
  6. japanese text,
  7. note text,
  8. CONSTRAINT dictionary_pkey PRIMARY KEY (id)
  9. )
これを
  1. CREATE TABLE "dictionary"
  2. (
  3. id serial NOT NULL,
  4. english text,
  5. japanese text,
  6. note text,
  7. DATE TIMESTAMP,
  8. CONSTRAINT dictionary_pkey PRIMARY KEY (id)
  9. )
に変更してテーブルを作り直す。
※dateフィールドの変更は別件

insert文にid以外を指定してクエリ実行
  1. INSERT INTO dictionary (english,japanese,note,DATE)
  2. VALUES('japanese','日本語','',now()
  3.  

NOT NULL制約を設定しているIDフィールドが空でもクエリは成功。
結果を確認すると・・・
予定通り、自動的にIDが振られている。

実験は想定どおりに成功したので、後はプログラム側から今回のような
クエリを生成して実行できるように修正すればよい・・・はず。

とりあえず今回はここまで。





添付ファイル
最近更新されたスレッド
ウィキ募集バナー