【问题标题】:Adding Auto Increment to a column without rebuilding the table在不重建表的情况下向列添加自动增量
【发布时间】:2010-10-30 10:26:24
【问题描述】:

有没有办法在不让mysql重建整个表的情况下将自动增量添加到现有列?

编辑 - 我正在做一个ALTER,但这需要很长时间,因为 mysql 会重建整个表结构。这个问题是关于是否有办法加快这个过程——毕竟添加“自动增量”的逻辑操作不应该触及任何表数据,这只是mysql的实现方式。

【问题讨论】:

    标签: mysql


    【解决方案1】:
    ALTER TABLE [table] ADD [columname] INT UNSIGNED NOT NULL AUTO_INCREMENT
    

    您也可以设置AUTO_INCREMENT的起始编号

    ALTER TABLE [table] AUTO_INCREMENT = [start]
    

    【讨论】:

    • mysql 会在您 ALTER 时重建整个表(对于大表,此操作需要很长时间)。我正在寻找一些方法让mysql在O(1)中做到这一点(阅读:非常快,或者至少是o(n))。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多