使用PhpMyAdmin导出同一表的结构:
`DROP TABLE IF EXISTS `test_apprentis`;
CREATE TABLE IF NOT EXISTS `test_apprentis` (
`a_id` smallint(10) NOT NULL,
`a_promo_id` smallint(11) NOT NULL,
`a_cursus` smallint(10) DEFAULT NULL
) ENGINE=MyISAM AUTO_INCREMENT=3665 DEFAULT CHARSET=utf8;`
Export with mysqldump:
DROP TABLE IF EXISTS `test_apprentis`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `test_apprentis` (
`a_id` smallint(10) NOT NULL AUTO_INCREMENT,
`a_promo_id` smallint(11) NOT NULL,
`a_cursus` smallint(10) DEFAULT NULL,
PRIMARY KEY (`a_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3665 DEFAULT CHARSET=utf8;
字符串
在PhpMyAdmin中,没有AUTO_INCREMENT和PRIMARY KEY。
6条答案
按热度按时间5t7ly7z51#
这不是一个愚蠢的问题,phpMyAdmin过去常常在CREATE TABLE语句的末尾包含KEY,并在它们的列名声明旁边包含它们的特征。在2014 changes log之后,在4.2.0.0(2014-05-08)版本之后,更改了导出文件结构:
因此,我们必须查看导出文件的末尾以查找所有索引信息
nkhmeac62#
对于那些需要解决这个问题的人,在
mysqldump
期间使用标志--single-transaction
,因此它会将PRIMARY KEY
放在CREATE TABLE
下,如下所示:mysqldump --databases mydatabase --single-transaction -u user -p > ./exported_file_name.sql
个blpfk2vs3#
我把自己当成了新手!我看了一下窗口显示的内容,在屏幕上,不用向下垂直升降吧!Export by phpMyAdmin在创建表后添加自动递增的列信息和PRIMARY KEY by ALTER TABLE查询。
字符串
请接受我对这个愚蠢问题的道歉。
z18hc3ub4#
在使用导出和导入时,在这方面需要注意的另一件事是导入时对交易数量的限制。没有警告说已超过该数量,并且超出的部分尚未执行。这意味着某些表可能存在,但尚未更新其索引和/或AUTO_INCREMENTS,特别是在导入整个数据库时。根据表的数量和它们的结构,可能需要三倍于此数量的事务,因此检查和调整php.ini文件中的相关参数是值得的。
a7qyws3x5#
如果要将此行为恢复为以前的工作方式,请编辑该文件
phpMyAdmin/libraries/plugins/export/ExportSql.class.php
在文件中,需要跳过以下面一行开始的代码块
字符串
最简单的方法就是把这一行改成
型
csga3l586#
我设法使用自定义导出方法添加密钥。
custom export method
您必须在“格式特定选项”部分中选中“导出元数据”选项。
format specific options的