首页 > 数据库 > mysql教程 > MySQL InnoDB如何实现非主键自增?

MySQL InnoDB如何实现非主键自增?

Barbara Streisand
发布: 2024-10-30 01:47:29
原创
986 人浏览过

How to Auto-Increment Non-Primary Keys in MySQL InnoDB?

MySQL InnoDB:自动递增非主键

MySQL 的 InnoDB 存储引擎允许主键的值自动递增。但是,不直接支持自动递增非主键。

具体问题:表结构

考虑“book_comments”的以下表结构:

book_id     medium_int
timestamp   medium_int
user_id     medium_int
vote_up     small_int
vote_down   small_int
comment     text
comment_id  medium_int
登录后复制

可以自动递增非主键吗?

是的,可以自动递增非主键。不过,需要在要自增的列上创建索引。

推荐方案

尽管非主键有自增的可能性,但推荐方案解决方案是将“comment_id”作为主键,并在“book_id”、“timestamp”和“user_id”的组合上创建唯一索引,以确保数据完整性。

其他注意事项

问题中提到的替代建议有缺点:

  • 将“comment_id”作为主键并创建唯一索引:此解决方案引入了额外的索引,这可能并不理想。
  • 将“comment_id”替换为“book_comments_votes”中的主键:这会显着增加“book_comments_votes”的大小并可能影响性能。

因此,最有效、最稳健的解决方案是遵循推荐的方法,使用“comment_id”作为主键,并在“book_id”、“timestamp”和“user_id”上创建唯一索引。

以上是MySQL InnoDB如何实现非主键自增?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板