特集 オープンソースで作る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]