php - 您可以使用 MySQL 查询来完全创建数据库的副本吗

标签 php mysql

我有一个实时版本的 MySQL 数据库,其中包含 5 个表和一个测试版本。

我一直在使用 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');
?>

关于php - 您可以使用 MySQL 查询来完全创建数据库的副本吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997101/

相关文章:

php - 无法在 apache2 [Debian 7.1] 中设置默认索引页

php - 学说 2 : How to change from MySQL to Oracle database

javascript - 将输入的 ipaddress 值与 laravel 中多选框的值进行比较?

mysql - WordPress 数据库表未创建

mysql - 对 sum 函数使用 group 函数无效

mysql - 使用用户 ID 数组添加/更新数据库列的 SQL 代码

php - 需要页面等待 php 完成

PHP 无法从数据库中获取 UTF8

php - 使用 PHP 合并本地和在线数据库

php - session token - 它是如何工作的?