[Perl] => [DBI]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク
DBIx::Class::Schema::Loaderを使用すればスキーマを作成する手間が省ける。
#!/usr/bin/perl

package My::Schema;
use base qw/DBIx::Class::Schema::Loader/;

# constraintで正規表現にマッチするテーブルのみロード
# excludeは正規表現にマッチするテーブルを除外
# debugオプションを指定することで自動解析したスキーマをダンプ
# その他loader_optionsに指定できるオプションはDBIx::Class::Schema::Loader::Baseを確認のこと

__PACKAGE__->loader_options( constraint => qr/point/, debug => 1 );

package Main;
use warnings;
use strict;

my $dsn = 'DBI:Pg:dbname=dbname;host=localhost';
my $user = 'username';
my $password = 'password';
my $attrs = { AutoCommit => 1 };
my $schema = My::Schema->connect($dsn, $user, $password, $attrs);

# primary_keyでの検索にはfind()を使用
my $result_set = $schema->resultset('Point')->search(
        { 
                timestamp => { '<=' => '2008-01-01' }
        },
        {
                order_by => 'timestamp'
        }
);

while (my $record = $result_set->next ) {
        print $record->id . "\t" . $record->timestamp . "\n";
}

# 検索してそのまま削除
$schema->resultset('Point')->search( { id => { '<=' => '514' } })->delete;

__END__


関連記事
DBIx::Class::Schema::Loader
SQL::Abstract
DBD::Pgのインストール
doメソッド
カラム名の一覧を取得
該当するレコードの数を取得するには
fetchall_arrayref
fetchrow_hashref
ラージオブジェクトのインポート
ラージオブジェクトの削除
ラージオブジェクトの書き込み
ラージオブジェクトのデータを取得
DBI - database handle
広告