How to Loop & rename MySQL table in Perl
Could you plesae teach me how to Loop & rename MySQL table in Perl. Thanks.
my code snippet attached
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect(
'DBI:mysql:database=dbdev;host=localhost',
'dbdev',
'dbdevpw',
{ RaiseError =开发者_如何学编程> 1, AutoCommit => 1 },
);
my $sql = RENAME TABLE old_table TO new_table;
my $sth = $dbh->prepare($sql);
while (<DATA>){
chomp;
// How to implement the Rename all the old tables with the while loop.
$sth->execute();
}
I'm assuming your list of tables live in DATA.
while (<DATA>){
chomp;
$dbh->do("RENAME TABLE ? TO ?", undef, $_, "new_" . $_);
}
You might also want to take a look at perldoc DBI
This code can be used to rename all tables in the database:
my @tables = map @$_, @{ $dbh->selectall_arrayref('SHOW TABLES') };
for my $table (@tables) {
$dbh->do("RENAME TABLE $table TO new_${table}");
}
Hope this helps.
精彩评论