PostgreSQL で献血データベースを作ろう

データを登録する

テーブルを作ったら, データを登録しましょう. データの登録には, 2 つ の方法があります.

  1. \copy で一括コピー
  2. insert で 1 つずつ

まず \copy ね. これは, タブで区切られたデータを一括して登録 することができます. 例えば data10.dat みたいな感じ. これは, bd_rec.sql の要素の順番にデータが並べられて ます. 注意としては, データをタブで区切る ことと, 文字列でもクオートする必要がないみたい ということ. で は, 実際に登録します.

$ psql bd
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: bd

bd=> \copy bd_rec from ./data10.dat

次は insert を使う方法. これは, 全部のデータを登録する必要 がない というのが利点かな? 昔の献血については, 成分検査の結果が 残っていなかったので, この方法で登録しました. 例えば data03.sql というのを使ってみます. これは, 登録する項目をまず列挙 しておき, それに対応するデータを書いていくというものです. データなどは カンマで区切り, さらに文字列はクオートで括る必要があります.

$ psql bd < ./data03.sql

このようにして, 私の場合はこの文書を書いている時点 (1999/02/20) で, 59 個のデータからなるテーブルができました.

ここまで来たら, 念の為にバックアップを取っておきます. これ以降の操 作で間違ってデータを壊してしまったら, 泣くに泣けませんからね. バックアッ プには何通りかのやりかたがありますが, ここでは pg_dump を使います. bd というデータベースのバックアップを取るので, 例えばこんな感じ.

$ pg_dump bd > backup.sql

こうしてできた backup.sql は, bd_rec というテーブルを drop table bd_rec として消しておいてから, 次のようにして使 います (ほとんど自明).

$ psql bd < backup.sql


[うさぎ印] おたより, お待ちしています

m@sa.to