4

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

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

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

谢谢史蒂夫

4

1 回答 1

2

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

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

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

于 2011-09-09T06:03:00.660 回答