| version 1.16, 2008/02/03 23:41:35 |
version 1.17, 2008/02/03 23:57:44 |
|
|
| # Licensed under terms of GNU General Public License. |
# Licensed under terms of GNU General Public License. |
| # All rights reserved. |
# All rights reserved. |
| # |
# |
| # $Platon: scripts/perl/mysql/mysql-table-copy.pl,v 1.15 2005/05/11 10:17:48 nepto Exp $ |
# $Platon: scripts/perl/mysql/mysql-table-copy.pl,v 1.16 2008-02-03 23:41:35 rajo Exp $ |
| |
|
| # TODO: - reconnect on closed connection |
# TODO: - reconnect on closed connection |
| # - managment for tables with multiple KEY columns |
# - managment for tables with multiple KEY columns |
| Line 65 usage() unless (scalar(@ARGV)); |
|
| Line 65 usage() unless (scalar(@ARGV)); |
|
| |
|
| usage() if (! defined $db_name1 or ! defined $db_name2); |
usage() if (! defined $db_name1 or ! defined $db_name2); |
| |
|
| $opt_where = " WHERE $opt_where" if (defined $opt_where and !defined $opt_nd); |
|
| |
|
| # we are using ',' as separators, because ';' is separator in shell |
# we are using ',' as separators, because ';' is separator in shell |
| $db_name1 =~ s/,/;/g; |
$db_name1 =~ s/,/;/g; |
| $db_name2 =~ s/,/;/g; |
$db_name2 =~ s/,/;/g; |
| Line 132 print "# Preparing SQL commands...\n" if |
|
| Line 130 print "# Preparing SQL commands...\n" if |
|
| |
|
| if ($opt_nd) { |
if ($opt_nd) { |
| $sql_max_id = $dbh2->prepare( |
$sql_max_id = $dbh2->prepare( |
| "SELECT MAX($primary_key) FROM $table $opt_where" ) |
"SELECT MAX($primary_key) FROM $table" . (defined($opt_where) ? " WHERE $opt_where" : "")) |
| or die $dbh1->errstr; |
or die $dbh1->errstr; |
| $sql_read_data = $dbh1->prepare( |
$sql_read_data = $dbh1->prepare( |
| "SELECT $primary_key, " . join( ', ', @columns ) . " FROM $table WHERE $primary_key > ? AND $opt_where" ) |
"SELECT $primary_key, " . join( ', ', @columns ) . " FROM $table WHERE $primary_key > ?" . (defined($opt_where) ? " AND $opt_where" : "")) |
| or die $dbh1->errstr; |
or die $dbh1->errstr; |
| } |
} |
| else { |
else { |
| $sql_delete_data = $dbh1->prepare( |
$sql_delete_data = $dbh1->prepare( |
| "DELETE FROM $table WHERE $primary_key = ? LIMIT 1" ) or die $dbh1->errstr; |
"DELETE FROM $table WHERE $primary_key = ? LIMIT 1" ) or die $dbh1->errstr; |
| $sql_read_data = $dbh1->prepare( |
$sql_read_data = $dbh1->prepare( |
| "SELECT $primary_key, " . join( ', ', @columns ) . " FROM $table $opt_where" ) |
"SELECT $primary_key, " . join( ', ', @columns ) . " FROM $table" . (defined($opt_where) ? " WHERE $opt_where" : "")) |
| or die $dbh1->errstr; |
or die $dbh1->errstr; |
| } |
} |
| $sql_write_data = $dbh2->prepare( |
$sql_write_data = $dbh2->prepare( |