オープンソースで作る Java+DB

特集 オープンソースで作るJava+DB
第1回 PostgreSQLで学ぶSQLデータベースの操作 (6/15)


 表3に示したKeijiテーブルを作るため方法は、次のような手順になる。

1. 連番のためのシーケンスを作る

 Keijiテーブルでは、id列を主キーとした。このid列の値は、レコードが追加されるたびに、1、2、…と自動的に連番を振りたい。

 このような連番を振りたい場合、PostgreSQLでは「シーケンス」という仕組みを使う。シーケンスとは、連番を自動発生させるものだ。また作成するためには、CREATE SEQUENCE文を使う。たとえば、KeijiIDという名前のシーケンスを作り初期値を1から始めるには、次のようにすればよい。

sampledb=# CREATE SEQUENCE KeijiID START 1;

One Point!

  • ここでは、KeijiIDという名前を付けたが、シーケンス名は任意である。
  • PostgreSQLでは、大文字小文字の区別はされない。よってすべて小文字で入力しても同じである。
  • もし、間違えてシーケンスを作ってしまった場合など、シーケンスを削除したい時には「DROP SEQUENCE シーケンス名;」と入力する。

 psqlコマンドでSQL文を入力するときには、最後の「;」に注意してほしい。これがSQL文の終了の印となる。最後の「;」を入力するまでは、続いた行として認識される。CREATE SEQUENCE文を実行すると、次のように表示され、KeijiIDシーケンスが作成される。

CREATE SEQUENCE

 これにより、KeijiIDシーケンスは、参照されるたびに、1、2、…のように連番を発生するようになる。

 本当に正しくシーケンスが作成されたかどうかは、\dコマンドで確認できる。\dコマンドは、データベース内のシーケンスやテーブルを一覧表示するためのコマンドだ。

sampledb=# \d List of relations Schema | Name | Type | Owner --------+---------+----------+---------- public | keijiid | sequence | postgres (1 row)

2. テーブルを作る

 では次に、実際にテーブルを作成する。テーブルを作成するには、CREATE TABLE文を使う。Table2に示したKeijiテーブルを作成するには、次に示すCREATE TABLE文を実行する。

CREATE TABLE Keiji (
id INTEGER PRIMARY KEY DEFAULT nextval('KeijiID'),
name VARCHAR(255) NOT NULL,
email VARCHAR(255),
title VARCHAR(255) NOT NULL,
body VARCHAR(2048) NOT NULL,
writedate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
host VARCHAR(255)
);

前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 次のページ

[大澤文孝,ITmedia]