Home > Database > Mysql Tutorial > body text

Why Am I Getting MySQL Error Code #1089 \'Incorrect Prefix Key\'?

Patricia Arquette
Release: 2024-11-01 07:35:30
Original
271 people have browsed it

Why Am I Getting MySQL Error Code #1089

Understanding MySQL Error Code #1089

The MySQL error code #1089, "Incorrect prefix key," indicates an issue with a primary key or unique index. It specifically occurs when the key part used is not a string or when the length of the key part used exceeds the actual key part's length.

In the provided SQL query:

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;
Copy after login

The issue stems from the usage of PRIMARY KEY (movie_id(3)). This line creates a primary key on the first three bytes of the movie_id column, which is specified by the (3) segment.

However, attempting to create a prefix on a numeric data type (INT in this case) is not supported by MySQL. This is because prefix keys are only applicable to string-based data types.

To resolve the error, you should use the following query:

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;
Copy after login

By removing the (3) segment, the primary key is created on the entire movie_id column as opposed to just its prefix. This resolves the issue and allows MySQL to create the primary key correctly.

The above is the detailed content of Why Am I Getting MySQL Error Code #1089 \'Incorrect Prefix Key\'?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!