Rumah >pangkalan data >tutorial mysql >Mengapakah saya mendapat ralat \'Kunci Awalan Salah\' (#1089) semasa membuat jadual MySQL?

Mengapakah saya mendapat ralat \'Kunci Awalan Salah\' (#1089) semasa membuat jadual MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 02:33:03378semak imbas

Why am I getting the

Ralat MySQL: Kunci Awalan Salah (#1089)

Masalah:

Apabila cuba mencipta jadual menggunakan pertanyaan berikut:

<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>

ralat berikut ditemui:

#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.

Jawapan:

Ralat berlaku kerana definisi PRIMARY KEY menentukan kunci sub bahagian, iaitu, hanya 3 bait pertama movie_id. Ini hanya disokong untuk jenis data rentetan. Untuk kunci utama pada jenis data berangka, panjang penuh mesti disertakan, tanpa menyatakan subbahagian:

<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>

Setelah membuat perubahan ini, ralat tidak akan muncul lagi dan jadual akan berjaya dibuat.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'Kunci Awalan Salah\' (#1089) semasa membuat jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn