导出时如何自动将 auto_increment 键重置为 1?

Posted

技术标签:

【中文标题】导出时如何自动将 auto_increment 键重置为 1?【英文标题】:How to reset automatically auto_increment keys to 1 when exporting? 【发布时间】:2016-06-13 14:22:18 【问题描述】:

我通过phpmyadmin 做了一个export 的数据库结构(没有数据)。然后我创建了另一个数据库并将之前导出的数据库导入其中。当import 完成后,我查看了新数据库的每个表的结构:我看到所有具有auto_increment 主键的表的auto_increment 选项都不是1!那么在执行export 时,如何使所有具有auto_increment 键的表中的auto_increment 为1?

【问题讨论】:

这不是回答您的问题吗:***.com/questions/3019698/… 你有哪个版本的phpmyadmin? 【参考方案1】:

当您导出表格时,PHPMyAdmin 中有一个选项可以重置 AI,但您只需在表格定义中添加 AUTO_INCREMENT = 1 即可。

CREATE TABLE IF NOT EXISTS `tablename` (
  ...columns...
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 

对于一个空表,例如在此导出的目标点,重置 auto_increment 属性的另一种方法是运行

TRUNCATE TABLE mydb.tablename;

您可以轻松地为您的新 EMPTY SQL 数据库上的所有表动态地执行此操作。

在此处阅读更多信息:http://trebleclick.blogspot.co.uk/2009/01/mysql-set-auto-increment-in-phpmyadmin.html


知道了!

这是一个两步解决方案,使用 PHPMyAdmin 转到表 --> 操作,然后在 复制表 面板上复制没有数据的表结构并取消选中复选框 Add AUTO_INCREMENT value

然后您转到新复制的表并导出该表。

【讨论】:

我的数据库中有数百个表,因此为每个表编写此代码非常辛苦! 导出表结构,然后在SQL文件中进行查找替换并添加代码,就可以轻松创建脚本在正确的行尾插入文本 如果您将所有表导出到一个 SQL 文件中,则只需查找并替换以插入 AI 条件。 @pheromix 我不仅要导出表,还要导出视图、触发器和函数! 不!当时它是一张一张地做的,那不是一个好习惯!

以上是关于导出时如何自动将 auto_increment 键重置为 1?的主要内容,如果未能解决你的问题,请参考以下文章

数据库如何设置主键(ID)自动增长啊(SQL语句)?

将自动增量主键插入现有表

将自动增量主键插入现有表

将自动增量主键插入现有表

MySQL:在没有 auto_increment 的情况下获取最后插入的主键

mysql表主键从给定值开始自动增长是怎么回事?