8

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

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

4

3 回答 3

2

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

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

734行

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

编辑:有一个缺点,那就是如果您导出一个或多个整个数据库(不仅仅是数据库中的部分或全部表,那么 CREATE 和 USE 语句也会出现注释。

于 2013-06-03T11:29:21.977 回答
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') {。因此,您不会破坏完整的服务器导出。

于 2013-12-09T11:44:23.533 回答
0

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

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

于 2021-03-16T16:33:28.020 回答