MySQL数据库表id

时间:2016-11-30 09:53:26

标签: mysql database

所以这就是我遇到的问题:

最近我们将数据库从一台服务器移动到另一台服务器。

  • 我们删除了表格中的大部分旧记录(测试记录),
  • 只剩下一些用于进一步测试,
  • 将数据库导出到文件中,
  • 并在新服务器上导入该文件以重新创建几乎空的数据库。

现在的问题是,新表中的ids(键)不是从0开始,而是从一些可笑的大数字开始 - 就像旧服务器在主键中遗留下来的那样。

我认为重新启动服务器可以解决问题,但我需要修复现有的密钥,我需要保留表中当前存在的记录,以便应用程序正常工作。

例如,我想转此:

|# id       | date_added            | mood | username | ...
|-----------|-----------------------|------|----------|-----
| 123123364 | '2016-09-06 09:44:57' | '5'  |  'Nav'   | ...
| 123123365 | '2016-10-18 09:14:27' | '3'  |  'admin' | ...
...

进入这个:

|# id  | date_added            | mood | username | ...
|------|-----------------------|------|----------|-----
| 1    | '2016-09-06 09:44:57' | '5'  |  'Nav'   |  ...
| 2    | '2016-10-18 09:14:27' | '3'  |  'admin' |  ...
...

让新条目从id = 3继续,而不是从id = 123123366

我有这样的想法:

  • 首先我浏览每个表并修复密钥,使它们从0开始,(我可以编写一个代码来代替我)
  • 我重新启动服务器。

我唯一的问题是,MySQL会遇到麻烦吗?如果它应该决定尝试创建id = 0的记录,并且发现这样的记录已经存在,它会抱怨吗?

你或许有更好的主意吗?

0 个答案:

没有答案