ホームページ  >  記事  >  データベース  >  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;

この問題は、PRIMARY KEY (movie_id(3)) の使用に起因します。この行は、(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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。