【问题标题】:Reset ID autoincrement ? phpmyadmin [duplicate]重置 ID 自动增量 ? phpmyadmin [重复]
【发布时间】:2011-03-02 11:21:08
【问题描述】:

我正在测试我的数据库表中的一些数据,看看是否有任何错误,现在我清理了所有测试数据,但是我的 id(自动递增)不再从 1 开始,可以(怎么办)我重置了?

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    ALTER TABLE `table_name` AUTO_INCREMENT=1
    

    【讨论】:

    • 实际上 ALTER TABLE tablename AUTO_INCREMENT = 0 对我来说效果最好,否则新记录添加了 id = 2。
    • 下面的米奇回答帮了我最好的stackoverflow.com/a/16114913/1123816
    【解决方案2】:

    您也可以在 phpMyAdmin 中执行此操作而无需编写 SQL。

    • 点击左侧栏中的数据库名称。
    • 点击左栏中的表名。
    • 点击顶部的“操作”标签。
    • 在“表选项”下应该有一个 AUTO_INCREMENT 字段(仅适用于具有自动增量字段的表)。
    • 输入所需的值,然后单击下面的“开始”按钮。

    注意:您会看到 phpMyAdmin 发出的 SQL 与其他答案中提到的相同。

    【讨论】:

      【解决方案3】:

      ALTER TABLE xxx AUTO_INCREMENT =1; 要么 通过 TRUNCATE 清除您的表

      【讨论】:

        【解决方案4】:

        我同意 rpd,这就是答案,可以定期清理你的 id 列,它只有几百行数据,但可能是 34444543!会定期删除,但 id 会自动递增。

        ALTER TABLE users DROP id
        

        上面的 sql 可以通过 sql 查询或 php 运行。这将删除 id 列。

        然后重新添加它,通过下面的代码:

        ALTER TABLE  `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
        

        将其放置在一段可能在管理面板中运行的代码中,因此当任何人进入该页面时,它将运行此脚本来自动清理您的数据库并整理它。

        【讨论】:

        • +1 很好的解决方案,因为 - 在我的情况下 - 如果表仍然包含一些数据(前 2 个用户),则不会更改 auto inc。但是使用您的解决方案,它会重新排列所有索引。
        • "这就是答案,可以定期清理只有几百行数据而变得越来越大的 id 列"?我是唯一一个看到,这是疯狂的吗? OP 询问(我认为)关于 empty 表的问题!您的“常规基础”建议在充满数据的表格上执行此常规操作。你怎么能想象得到?关系怎么样(其他表,使用该表中的 ID?)如果您只是删除 id 并重新创建它,那么您将完全更改记录的 ID。您也可以完全停止使用id 列!
        • 每种情况都不同....我只有 8000 行,我的 id 有 9 或 10 个数字长....没有关系,只是选择了最新的结果(最高 id) .这是每月对计划任务执行一次,18 个月后从未出现过问题......
        • 这非常适合我的情况!谢谢!!!
        • 只有在数据库中的数据不断翻转并且 id 仅与单个会话相关时,此选项才适合定期执行。或者如果数据总是以后进/先出的方式使用。但是就像 Trejder 所说的那样,如果 id 用于将此处的数据链接或关联到其他表或代码,那么执行您所说的操作会破坏一切。所以我可以看到在某些情况下它是可以的,但你必须小心,如果你过度使用它,你可能会导致你的程序以奇怪的意外方式中断,这可能不会留下有意义的错误来提供帮助。
        【解决方案5】:

        我刚刚在我的一个 MySQL 数据库中遇到了这个问题,我在这里查看了 phpMyAdmin 的答案。但是,我在 phpMyAdmin 中修复它的最佳方法是在受影响的表中,删除 id 列并创建一个新的/新的 id 列(添加 A-I -autoincrement-)。这恢复了我的表 id 正确简单!希望对其他有此问题的人有所帮助(不需要 MySQL 代码 - 我希望学习使用它,但稍后!)。

        【讨论】:

        • phpMyAdmin 用来做你告诉它做的事情的 sql 本质上是 Mikeys4u 的答案。你可以在上面看到我的评论,为什么虽然这在某些情况下是可以的,但它不是万灵药
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-02
        • 2018-09-09
        • 2018-11-30
        • 2018-01-22
        • 1970-01-01
        相关资源
        最近更新 更多