MySQL InnoDB:自動遞增非主鍵
在 MySQL InnoDB 中,可以自動遞增非主鍵列,但一般不建議這樣做。
問題:
是否可以自動遞增非主鍵,特別是book_comments 中的comment_id 欄位
替代方案:。 🎜>
提問者提出了使用自動遞增非主鍵的兩種替代方案:答案:
是的,可以自動遞增非主表key 透過在該列上建立索引來實現。以下範例建立一個有自動遞增 testInc 欄位的資料表:<code class="sql">CREATE TABLE `test` ( `testID` int(11) NOT NULL, `string` varchar(45) DEFAULT NULL, `testInc` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`testID`), KEY `testInc` (`testInc`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;</code>但是,專家強烈建議不要這種做法。更合適的方法是將 comment_id 作為主鍵,並透過 (book_id、timestamp、user_id) 上的唯一索引來強製完整性。這種方法為表提供了合適的主鍵,並遵循最小驚訝原則。
以上是MySQL InnoDB 可以實現非主鍵自增嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!