NAME
DBIx::CopyRecord - Perl module for copying records in databases within same table including all child tables;
SYNOPSIS
use DBIx::CopyRecord;
# connect
my $dbh = DBI->connect('dbi:MySQL:','login','password');
my $CR = DBIx::CopyRecord->new($dbh);
### child table_name only is not yet supported.
$rv=$CR->copyrecord(
{ table_name => 'invoice',
primary_key => 'invoice_number',
primary_key_value => 'select seq_invoice.nextvalue FROM dual',
where => 'invoice_number=100',
child => [ { table_name => products,
primary_key => line_item_id,
primary_key_value => 'select seq_invoice_detail.nextvalue FROM dual',
foreign_key => invoice_number },
{ table_name => services } ] });
# disconnect database
$dbh->disconnect;
NOTE:primary_key_value = 'NULL' for MySQL if auto_increment,
a value or 'select value from sequence'
DESCRIPTION
This module can copy records in a database whild maintaining referential integrity. The copy
method is all that's needed.
USAGE
use DBIx::CopyRecord;
my $CR = DBIx::CopyRecord->new( DB HANDLE );
RV = $CR->copyrecord(
{ table_name => TABLE NAME,
primary_key => PRIMARY KEY COLUMN,
primary_key_value => VALUE, NULL or SELECT,
where => WHERE CONDITION,
child => [ { table_name => CHILD TABLE NAME,
primary_key => CHILD PRIMARY KEY COLUMN,
primary_key_value => CHILD VALUE, NULL or SELECT,
foreign_key => COLUMN NAME OF },
{ table_name => CHILD TABLE NAME } ] });
Argument list: table_name primary_key primary_key_value where child
Child table_name entry without additional arguments will attempt to figure out the primary key and foreign key from the database.
AUTHOR
Jack Bilemjian <jck000@gmail.com>
COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
SEE ALSO
DBI(1).