DBIx::BulkLoader::Mysql - Perl extension for mysql bulk loading
use DBIx::BulkLoader::Mysql; # non repeating portion of the insert statement my $insert='insert into bulk_insert (col_a,col_b,col_c) values '; # repeating portion of the insert statement my $placeholders='(?,?,?)'; # how many rows to buffer until insert is called my $bulk_insert_count=5; # db connection my $dbh=DBI->connect(db connection info here); my $placeholder_count=3; my ($bulk,$error)=DBIx::BulkLoader::Mysql->new( dbh=>$dbh ,sql_insert=>$insert ,placeholders=>$placeholders ); die $error unless $bulk; for( 1 .. 50 ) { $bulk->insert(qw(a b c)); } # inserted 50 rows at once $bulk->insert(qw(l l x)); # inserted 0 rows $bulk->insert(qw(l l x)); # inserted 0 rows $bulk->flush; # inserted 2 rows 1 at a time
Simple buffering bulk loader interface for mysql.
None.
This section covers the OO methods for this package.
my ($bulk,$error)=DBIx::BulkLoader::Mysql->new(%hash);
Package constructor.
$bulk is undef on error $error explains why $bulk is undef
Constructor options
dbh=>$dbh Sets the DBH object sql_insert=>$insert Contains the body of the sql statement minus the placeholder segment. placeholders=>$placeholders Placeholder segment of the sql statement placeholder_count=>3 Optional argument If you get strange insert counts or dbi bails set this option manually bulk_insert_count=>50 Optional argument Sets the number of rows to buffer for insert. prepare_args=>{} Optional argument Arguments to be passed to $dbh->prepare See DBD::mysql
$bulk->flush;
Empties the placeholder buffer
$bulk->insert($x,$y,$z);
Inserts the placeholder arguments onto the buffer stack. This does not cause an insert, unless the total number of rows is the same as the constructor call "bulk_insert_count=>50".
my $columns=$bulk->get_placeholder_count;
Gets the total number of column placeholders.
my $buffer_size=$bulk->get_buffer_size;
Gets the total size of the array used for insert.
my $sql_single=$bulk->single_sql;
Gets the raw sql statement used for single row inserts.
my $bulk_sql=$bulk->bulk_sql;
Gets the raw sql statement used for bulk row inserts.
my $single_sth=$bulk->get_prepared_single_sth;
Gets the prepared statement handle for single row inserts.
my $bulk_sth=$bulk->get_prepared_bulk_sth;
Gets the prepared statement handle for bulk row inserts.
my @buffer=$bulk->get_buffered_data;
Returns a list containing the current buffered data
DBI, DBD::mysql
If you find this software usefil please donate to the Source Forge Project.
DBIx BulkLoader Mysql
Michael Shipper
Copyright (C) 2010 by Michael Shipper
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.
To install DBIx::BulkLoader::Mysql, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::BulkLoader::Mysql
CPAN shell
perl -MCPAN -e shell install DBIx::BulkLoader::Mysql
For more information on module installation, please visit the detailed CPAN module installation guide.