微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 你可以使用MySQL查询来完全创建数据库的副本

我有一个带有5个表和TEST版本的 MySQL数据库的LIVE版本.

我一直在使用PHPMyAdmin将LIVE版本中的每个表复制到TEST版本.

有没有人有mySQL查询语句来制作数据库的完整副本?查询字符串需要考虑结构,数据,自动增量值以及与需要复制的表相关联的任何其他内容.

谢谢.

好的,经过大量研究,谷歌搜索和阅读每个人的评论,我制作了以下脚本 – 我现在从浏览器地址栏运行.测试它,它完全符合我的需要.谢谢大家的帮助.
<?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');
?>

原文地址:https://www.jb51.cc/php/130257.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐