你能教我如何循环和;在Perl中重命名MySQL表。感谢。
附上我的代码段
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();
}
答案 0 :(得分:1)
我假设您的表格列表位于 DATA 。
while (<DATA>){
chomp;
$dbh->do("RENAME TABLE ? TO ?", undef, $_, "new_" . $_);
}
您可能还想查看perldoc DBI
答案 1 :(得分:0)
此代码可用于重命名数据库中的所有表:
my @tables = map @$_, @{ $dbh->selectall_arrayref('SHOW TABLES') };
for my $table (@tables) {
$dbh->do("RENAME TABLE $table TO new_${table}");
}
希望这有帮助。