MySQL导出时如何设置自增ID从1开始

5
有没有办法在Mysql Workbench(或其他工具)中仅导出数据库模式而不包括数据,并且不自动将AutoIncrement值设置为表行数?
例如:我在MySql Workbench Export上使用了--no-data选项。假设在导出之前,表中实际上有100行数据,则导出的脚本将没有数据,但是在表创建脚本中会有AUTO_INCREMENT=100
我需要能够即时创建一个空的数据库创建脚本,以备份和部署目的。

1
如果是备份的话,数据也在里面不是很重要吗? :) - Ja͢ck
2
我只需要能够为应用程序生成开发和“部署”目的的部署脚本。对于数据库中的每个更改,我都会创建一个部署脚本,并且我经常这样做。每次我需要回去并在所有表上设置AUTO_INCREMENT=1 :( - user1489192
3个回答

0

是的,总有办法的。

当仅导出mysql中的结构时,需要取消一个复选框,即在对象创建选项(“go”按钮上方)下方的“AUTO_INCREMENT”,然后您会得到预期的结果。

如果您有任何疑问,请告诉我。


1
你是如何导出结构的,复选框在哪里?谢谢。 - JoJo
6
那个复选框不存在。 - gshauger

0

我有同样的问题,但我已经找到了解决方案:

mysqldump --no-data=true -u username -p dbname > table.sql && sed -i 's/AUTO_INCREMENT=[0-9]\+/AUTO_INCREMENT=1/g' table.sql

0
我遇到了相同的问题,最终找到了解决方法。 问题是,当您导入数据时,它将表的当前自动递增值存储到模型中。 如果您希望它为1,则需要在导出模型为SQL之前手动编辑此值。
操作如下:
  1. 右键单击表名,选择“编辑'<Table name>'”(或双击它)
  2. 在“选项”选项卡和“常规选项”下,将“自动递增”值更改为1
  3. 保存您的模型
  4. 导出模型

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接