【问题标题】:Convert MyISAM to InnoDB where tables have two-column (composite) PK and one of those is auto-increment将 MyISAM 转换为 InnoDB,其中表具有两列(复合)PK,其中之一是自动增量
【发布时间】:2011-06-30 23:05:36
【问题描述】:

我想将我们的一些 MyISAM 表转换为 InnoDB,以便我可以利用外键支持。但是,大多数表使用两列(复合)主键设计,其中一个列是自增列(这是出于历史原因这样做,同时也确保自增列可以充当一种其他列值上下文中记录的增量键)

我意识到我们需要取消多列主键才能使用自动增量和 InnoDB。我们有数千条记录,这些记录与其他表有关系。

有没有关于如何将这些表转换为 InnoDB 的提示?我想出的唯一方法是首先在每个表中添加一个新列,将其设置为唯一的自动增量主键,然后使用脚本更新依赖表以指向新的(真正唯一的)主键.

谢谢 史蒂夫

【问题讨论】:

    标签: mysql primary-key innodb auto-increment composite-key


    【解决方案1】:

    在 MySQL 5.0 及更高版本中,您可以将自动增量列作为主键的一部分,但它必须是索引中的第一个字段。

    *...一个 AUTO_INCREMENT 列必须作为 InnoDB 表索引中的第一列出现...*

    在此处查看文档条目http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment-handling.html

    【讨论】:

      猜你喜欢
      • 2019-10-12
      • 2010-11-16
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多