首页  >  文章  >  数据库  >  MySQL InnoDB中的非主键列可以自增吗?

MySQL InnoDB中的非主键列可以自增吗?

Linda Hamilton
Linda Hamilton原创
2024-10-30 10:12:32345浏览

Can a Non-Primary Key Column in MySQL InnoDB be Auto-Incremented?

MySQL InnoDB 中的自动递增非主键

MySQL InnoDB 中可以自动递增非主键列。这可以通过在列上创建索引来实现。

在给定的示例中,要自动递增 book_comments 表中的 comment_id 列,请按照以下步骤操作:

<code class="sql">CREATE TABLE book_comments (
    book_id mediumint,
    timestamp mediumint,
    user_id mediumint,
    vote_up smallint,
    vote_down smallint,
    comment text,
    comment_id mediumint,

    PRIMARY KEY (book_id, timestamp, user_id),
    INDEX id (comment_id)
);</code>

添加comment_id上的INDEX启用自动递增行为,同时确保相应的索引由InnoDB维护。 id 索引名称可以根据需要自定义。

对于 book_comments_votes 表,建议使用 book_comments 中的整个主键作为外键,以强制引用完整性并避免重复。

而将 comment_id 作为主键并通过 book_id、时间戳和 user_id 上的唯一索引强制完整性在概念上是可行的,通常认为每个表都有唯一主键是最佳实践。这确保了一致且可靠的数据检索和维护。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn