Mengapa Saya Mendapat Kod Ralat MySQL #1089 \'Kunci Awalan Salah\'?

Patricia Arquette
Lepaskan: 2024-11-01 07:35:30
asal
271 orang telah melayarinya

Why Am I Getting MySQL Error Code #1089

Memahami Kod Ralat MySQL #1089

Kod ralat MySQL #1089, "Kunci awalan salah," menunjukkan isu dengan kunci utama atau indeks unik. Ia berlaku secara khusus apabila bahagian kunci yang digunakan bukan rentetan atau apabila panjang bahagian kunci yang digunakan melebihi panjang bahagian kunci sebenar.

Dalam pertanyaan SQL yang disediakan:

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;
Salin selepas log masuk

The isu berpunca daripada penggunaan PRIMARY KEY (movie_id(3)). Baris ini mencipta kunci utama pada tiga bait pertama lajur movie_id, yang ditentukan oleh segmen (3).

Walau bagaimanapun, cuba membuat awalan pada jenis data berangka (INT dalam kes ini) tidak disokong oleh MySQL. Ini kerana kekunci awalan hanya boleh digunakan pada jenis data berasaskan rentetan.

Untuk menyelesaikan ralat, anda harus menggunakan pertanyaan berikut:

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;
Salin selepas log masuk

Dengan mengalih keluar segmen (3), kunci utama dibuat pada keseluruhan lajur movie_id berbanding hanya awalannya. Ini menyelesaikan isu dan membenarkan MySQL mencipta kunci utama dengan betul.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Kod Ralat MySQL #1089 \'Kunci Awalan Salah\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!