首頁  >  文章  >  資料庫  >  為什麼我收到 MySQL 錯誤代碼 #1089「前綴鍵不正確」?

為什麼我收到 MySQL 錯誤代碼 #1089「前綴鍵不正確」?

Patricia Arquette
Patricia Arquette原創
2024-11-01 07:35:30272瀏覽

Why Am I Getting MySQL Error Code #1089

了解MySQL 錯誤代碼#1089

MySQL 錯誤代碼#1089,“前綴鍵不正確”,表示主鍵有問題或唯一索引。當使用的關鍵部分不是字串或所使用的關鍵部分的長度超過實際關鍵部分的長度時,會特別發生這種情況。

在提供的 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;

The問題源自於主鍵 (movie_id(3)) 的使用。此行在 movie_id 列的前三個位元組上建立主鍵,該列由 (3) 段指定。

但是,嘗試在數字資料類型(本例中為 INT)上建立前綴MySQL 不支援。這是因為前綴鍵僅適用於基於字串的資料類型。

要解決該錯誤,您應該使用以下查詢:

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;

透過刪除 (3) 段,主鍵是在整個 movie_id 欄位上建立的,而不僅僅是其前綴。這解決了問題並允許 MySQL 正確建立主鍵。

以上是為什麼我收到 MySQL 錯誤代碼 #1089「前綴鍵不正確」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn