我正在使用 phpMyAdmin 4.0.2 并且似乎在对整个数据库进行导出时,默认情况下它会在导出 SQL 的开头添加语句“CREATE DATABASE IF NOT EXISTS”。
我找不到配置选项或任何禁用它的选项......那么有没有办法禁用它并且默认情况下在我的导出中没有该语句?
我正在使用 phpMyAdmin 4.0.2 并且似乎在对整个数据库进行导出时,默认情况下它会在导出 SQL 的开头添加语句“CREATE DATABASE IF NOT EXISTS”。
我找不到配置选项或任何禁用它的选项......那么有没有办法禁用它并且默认情况下在我的导出中没有该语句?
在版本 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 语句也会出现注释。
与 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') {
。因此,您不会破坏完整的服务器导出。
我要做的是首先选择左侧边栏中的数据库,然后单击该Export
选项。转储文件不包含该CREATE DATABASE
语句。
一个快速警告,这对我有用,但我没有分析 SQL 导出文件中是否存在您可能需要考虑的其他差异