Rumah > Artikel > pangkalan data > Mengapa Saya Mendapat Kod Ralat MySQL #1089 \"Kunci Awalan Salah\"?
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;
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;
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!