我正在使用phpMyAdmin 4.0.2,似乎在对整个数据库进行导出时,默认情况下会在导出SQL的开头添加语句“CREATE DATABASE IF NOT EXISTS”。
我无法找到配置选项或任何禁用该选项的选项...那么有没有办法禁用它,默认情况下我的导出中没有该语句?
答案 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 导出文件中是否有任何其他您可能需要考虑的差异