Как зациклить и переименовать таблицу MySQL в Perl - PullRequest
1 голос
/ 15 апреля 2010

Не могли бы вы научить меня, как зациклить и переименовать таблицу MySQL в Perl Спасибо.

мой фрагмент кода прилагается

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(); 
} 

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Я предполагаю, что ваш список таблиц находится в ДАННЫХ .

while (<DATA>){ 
    chomp; 
     $dbh->do("RENAME TABLE ? TO ?", undef, $_, "new_" . $_);
} 

Возможно, вы также захотите взглянуть на perldoc DBI

0 голосов
/ 15 апреля 2010

Этот код можно использовать для переименования всех таблиц в базе данных:

my @tables = map @$_, @{ $dbh->selectall_arrayref('SHOW TABLES') };

for my $table (@tables) {
    $dbh->do("RENAME TABLE $table TO new_${table}");
}

Надеюсь, это поможет.

...