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

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

【问题讨论】:

标签: mysql 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
  • 我不仅要导出表,还要导出视图、触发器和函数!
  • 不!当时它是一张一张地做的,那不是一个好习惯!
猜你喜欢
  • 2012-07-03
  • 2012-06-30
  • 2012-03-10
  • 2019-06-03
  • 2011-08-31
  • 2011-04-18
  • 1970-01-01
  • 2012-07-02
  • 2011-02-11
相关资源
最近更新 更多