首頁  >  文章  >  資料庫  >  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