Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich beim Erstellen einer MySQL-Tabelle die Fehlermeldung „Falscher Präfixschlüssel' (#1089)?

Warum erhalte ich beim Erstellen einer MySQL-Tabelle die Fehlermeldung „Falscher Präfixschlüssel' (#1089)?

Patricia Arquette
Freigeben: 2024-10-30 02:33:03
Original
389 Leute haben es durchsucht

Why am I getting the

MySQL-Fehler: Falscher Präfixschlüssel (#1089)

Problem:

Beim Versuch, eine Tabelle mit zu erstellen Folgende Abfrage:

<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>
Nach dem Login kopieren

Der folgende Fehler ist aufgetreten:

#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.
Nach dem Login kopieren

Antwort:

Der Fehler tritt auf, weil die PRIMARY KEY-Definition Folgendes angibt ein Unterteilschlüssel, also nur die ersten 3 Bytes von movie_id. Dies wird nur für String-Datentypen unterstützt. Bei Primärschlüsseln für numerische Datentypen muss die vollständige Länge ohne Angabe eines Unterteils enthalten sein:

<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>
Nach dem Login kopieren

Nach dieser Änderung sollte der Fehler nicht mehr auftreten und die Tabelle wird erfolgreich erstellt.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen einer MySQL-Tabelle die Fehlermeldung „Falscher Präfixschlüssel' (#1089)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage