SQLite+Perl: テーブルを作成する方法

SQLitePerlで、テーブルを作成する方法をメモっておく。

現在、SQLiteを勉強中であるが、1つ1つメモることにする。まずは、テーブルの作成方法である。

サンプルコード

#!/usr/bin/perl

use DBI;

$mydb = "testdb";

# (1) データーベースに接続する
$hDB = DBI->connect(
  "dbi:SQLite:dbname=$mydb","","",{PrintError=>0}
  );
if(!$hDB){
	print "$DBI::errstr \n";
	exit;
}

# (2) テーブル作成のSQL文
$sql =
  "CREATE TABLE user_info(
    id integer primary key,
    name,
    email
  )";

# (3) テーブル作成実行
$hst = $hDB->do($sql);
if(!$hst){
	print $hDB->errstr . "\n";
	exit;
}

$hDB->disconnect;

解説

(1) データーベースに接続する

まずは、connect でデーターベースに接続する。指定したファイル(上のサンプルでは、testdb) がない場合は新規に作成される。

引数の {PrintError=>0} は、エラーが発生しても自動でエラーを表示させないようにするためである。自分でエラー処理を行いたい場合には、この設定が有効である。

(2) テーブル作成のSQL文

一般的なSQL文であるが、SQLite が他と違うのは、データ型を指定しなくてもよい点である。指定しても良いが、無視されるようである。また、primary key を指定すると、データ挿入時にチェックされ、同一のデータが登録されないようにすることができる。unique でも同様のことができる。プライマリキー以外で、チェックしたい場合は、unique を指定すればよい。

また、primary key でデータ型をinteger とし、データ挿入時にnullを指定すると自動的に連番を振ってくれる。

(3) テーブル作成実行

最後にSQLを実行する。do 以外にも、prepare, execute を使ってもできるが、ここでは1度しか実行しないので、do を用いている。

トラックバック(1)

このブログ記事に対するトラックバックURL: http://itsmemo.com/mt/mt-tb.cgi/52

※スパム防止のため、管理人がトラックバック内容確認後、公開されます。

掲示板のCGIを作っていて、データ保存方法を勉強しています。 区切り文字を使ったフラットファイル Data::Dumperを使ったフラットファイルへの挿... 続きを読む

コメントする