【问题标题】:sql statement to regnerate auto increment field from start to end againsql语句再次生成从头到尾的自增字段
【发布时间】:2011-10-26 01:51:27
【问题描述】:

我有一个 MYSQL 表。

在该表中有一个列名 SRNO 是它的主键,也是自动递增的。

我在该表中有大约 25000 条记录,但表之间的一些记录已被删除。

例如删除第 10 条记录等

我想要一个 SQL 脚本来运行 mysql 以重新生成所有自动增量字段,以便它再次从 1 开始并在最后一条记录结束以避免丢失记录。

谢谢

【问题讨论】:

标签: mysql sql auto-increment


【解决方案1】:

这通常被认为不是一个好主意,因为这样会严重破坏参照完整性。如果这是美学问题,我建议保持原样。话虽如此,这就是你要做的:

  • 创建一个与旧表具有相同架构的新表,并将自动增量设置为 1。
  • 将旧表中的所有记录插入新表中,自动增量列除外。
  • 将原始表重命名为其他名称
  • 将新表重命名为原名

这将有效地“重新播种”您的表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2012-04-07
    • 2021-12-08
    • 2019-07-26
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多