PhpMyAdmin导出不包括PRIMARY KEY作为mysqldump

Oto*_*tic 8 mysqldump phpmyadmin

使用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;
Run Code Online (Sandbox Code Playgroud)

使用PhpMyAdmin,没有AUTO_INCREMENT也没有PRIMARY KEY为什么?

小智 9

这不是一个愚蠢的问题,phpMyAdmin过去常常在CREATE TABLE语句的末尾包含KEY,并在其列名声明旁边包含它们的特性.在版本4.2.0.0(2014-05-08)之后的2014更改日志之后,导出文件结构已更改:

  • rfe#1004在SQL导出的最后创建索引

因此,我们必须查看导出文件的末尾以查找所有索引信息

  • 有没有办法在创建表语句下面获取键?第一个表然后键然后第二个表然后键? (3认同)

Oto*_*tic 2

我作为一个新手,把自己困住了!我查看了屏幕上显示的窗口内容,没有向下垂直升降栏!phpMyAdmin导出在创建表后通过ALTER TABLE查询添加自增列信息和PRIMARY KEY。

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;

ALTER TABLE `test_apprentis`
  ADD PRIMARY KEY (`a_id`);

ALTER TABLE `test_apprentis`
  MODIFY `a_id` smallint(10) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3665;
Run Code Online (Sandbox Code Playgroud)

请接受我对这个愚蠢问题的歉意。