2010-04-15 7 views
1

Pourriez-vous m'apprendre comment créer une boucle? & renommer la table MySQL en Perl. Merci.Comment faire pour boucler et renommer la table MySQL en Perl

mon extrait de code attaché

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

Quel est le downvote pour cette question? –

Répondre

0

Ce code peut être utilisé pour renommer toutes les tables de la base de données:

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

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

Hope this helps.

1

Je suppose que votre liste de tables se trouve dans DATA.

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

Vous pouvez également jeter un oeil à perldoc DBI

+0

++ pour les espaces réservés. – daotoad

Questions connexes