如何从phpMyAdmin 4中的Export中删除“CREATE DATABASE IF NOT EXISTS”语句?

时间:2013-06-03 08:34:58

标签: mysql phpmyadmin

我正在使用phpMyAdmin 4.0.2,似乎在对整个数据库进行导出时,默认情况下会在导出SQL的开头添加语句“CREATE DATABASE IF NOT EXISTS”。

我无法找到配置选项或任何禁用该选项的选项...那么有没有办法禁用它,默认情况下我的导出中没有该语句?

3 个答案:

答案 0 :(得分:2)

默认情况下,版本3中没有发生此行为。快速修复,实际上是一个黑客,因此不是理想的解决方案,是编辑位于libraries / plugins / export / ExportSql.class.php中的导出类文件并强制通过在它们之前添加“ - ”来注释掉CREATE和USE语句,如下所示: 709行

$create_query = '-- CREATE DATABASE IF NOT EXISTS '

第734行

'-- USE ' . PMA_Util::backquoteCompat($db, $compat)

编辑:有一个缺点,那就是如果您导出一个或多个整个数据库(而不仅仅是数据库中的部分或全部表),那么CREATE和USE声明也出现了评论。

答案 1 :(得分:0)

与Hermes的答案相反,更好的想法是编辑文件./export.php(注意:不是db_export.php)。

在第724行(在phpMyAdmin 4.0.4中),您将找到以下行:

    if (! $export_plugin->exportDBCreate($db)) {
        break;
    }

您可以评论或删除它们以跳过创建数据库语句的创建(在我看来,它也更简洁,然后在导出中有2条注释行。)

像这样:

    /*
    if (! $export_plugin->exportDBCreate($db)) {
        break;
    }
    */

上述行仅适用于导出单个数据库(在第720行,您会找到:} elseif ($export_type == 'database') {)。因此,您不会破坏完整的服务器导出。

答案 2 :(得分:0)

我所做的是首先在左侧边栏中选择数据库,然后单击 Export 选项。转储文件不包含 CREATE DATABASE 语句。

一个快速警告,这对我有用,但我还没有分析 SQL 导出文件中是否有任何其他您可能需要考虑的差异