sql >> Database teknologi >  >> RDS >> Mysql

Kan du bruge en MySQL-forespørgsel til fuldstændig at oprette en kopi af databasen

Ok, efter en masse research, google og gennemlæsning af alles kommentarer heri, producerede jeg følgende script -- som jeg nu kører fra browserens adresselinje. Testede det, og det gør præcis, hvad jeg havde brug for det til at gøre. Tak for alles hjælp.

<?php
function duplicateTables($sourceDB=NULL, $targetDB=NULL) {
    $link = mysql_connect('{server}', '{username}', '{password}') or die(mysql_error()); // connect to database
    $result = mysql_query('SHOW TABLES FROM ' . $sourceDB) or die(mysql_error());
    while($row = mysql_fetch_row($result)) {
        mysql_query('DROP TABLE IF EXISTS `' . $targetDB . '`.`' . $row[0] . '`') or die(mysql_error());
        mysql_query('CREATE TABLE `' . $targetDB . '`.`' . $row[0] . '` LIKE `' . $sourceDB . '`.`' . $row[0] . '`') or die(mysql_error());
        mysql_query('INSERT INTO `' . $targetDB . '`.`' . $row[0] . '` SELECT * FROM `' . $sourceDB . '`.`' . $row[0] . '`') or die(mysql_error());
        mysql_query('OPTIMIZE TABLE `' . $targetDB . '`.`' . $row[0] . '`') or die(mysql_error());
    }
    mysql_free_result($result);
    mysql_close($link);
} // end duplicateTables()
duplicateTables('liveDB', 'testDB');
?>


  1. Ændre grænse for Mysql rækkestørrelse for stor

  2. Løsninger til, hvordan du læser SQL Server-transaktionslogfil uden fejl

  3. SSIS kan ikke gemme pakker og genstarter Visual Studio

  4. Oracle strengaggregering