首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MyISAM转换为InnoDB,其中表有两列(复合)主键,其中之一是自动增量

将MyISAM转换为InnoDB,其中表有两列(复合)主键,其中之一是自动增量
EN

Stack Overflow用户
提问于 2011-02-21 07:40:26
回答 1查看 996关注 0票数 4

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

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

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

谢谢史蒂夫

EN

回答 1

Stack Overflow用户

发布于 2011-09-09 14:03:01

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

*...An AUTO_INCREMENT列必须显示为InnoDB表的索引中的第一列...*

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5060927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档