問題:
嘗試使用以下查詢:
<code class="sql">CREATE TABLE `movies`.`movie` ( `movie_id` INT(3) NULL AUTO_INCREMENT, `movie_name` VARCHAR(25) NULL, `movie_embedded_id` VARCHAR(50) NULL, `rating_no` INT(3) NULL, `movie_description` VARCHAR(50) NULL, PRIMARY KEY (`movie_id`(3))) ENGINE = InnoDB;</code>
嘗試使用以下查詢:
#1089 - Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys.
遇到以下錯誤:
答案:
<code class="sql">CREATE TABLE `movies`.`movie` ( `movie_id` INT(3) NULL AUTO_INCREMENT, `movie_name` VARCHAR(25) NULL, `movie_embedded_id` VARCHAR(50) NULL, `rating_no` INT(3) NULL, `movie_description` VARCHAR(50) NULL, PRIMARY KEY (`movie_id`)) ENGINE = InnoDB;</code>
發生錯誤是因為PRIMARY KEY 定義指定子部分密鑰,即只有movie_id 的前3 個位元組。僅字串資料類型支援此功能。對於數字資料類型的主鍵,必須包含完整長度,而不指定子部分:
進行此更改後,錯誤不應再出現,並且表將成功建立。以上是為什麼我在建立 MySQL 表時收到「前綴鍵不正確」錯誤 (#1089)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!