Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1022: Kunci Pendua dalam Penciptaan Jadual?
Ralat Kunci Pendua dalam Penciptaan Jadual: Menyelesaikan masalah "Ralat 1022"
Seorang pengguna menemui "Ralat 1022: Tidak boleh menulis; ralat kunci pendua dalam jadual" semasa cuba mencipta jadual baharu. Setelah meneliti pertanyaan SQL, sumber pertindihan tidak dapat dilihat dengan serta-merta.
Pertanyaan mencipta jadual bernama usercircle dengan berbilang lajur, termasuk idUserCircle, userId dan circleId. Ia juga menyatakan kunci utama pada idUserCircle dan kekangan kunci asing yang merujuk kepada jadual pengguna dan bulatan pada lajur userId dan circleId.
Mengenal pasti Konflik
Kuncinya untuk menyelesaikan ralat ini terletak pada mengiktiraf bahawa kekangan, termasuk kekangan utama asing, mesti unik merentas seluruh pangkalan data, bukan hanya dalam jadual tertentu. Oleh itu, isu asas berkemungkinan nama kekangan pendua di tempat lain dalam pangkalan data.
Penyelesaian
Untuk menentukan kekangan yang bercanggah, pengguna boleh melaksanakan pertanyaan berikut:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
Pertanyaan ini akan mendedahkan jadual dan lajur yang sedang menggunakan iduser dan kekangan idcategory. Dengan menamakan semula kekangan pendua, pengguna boleh menyelesaikan ralat dan berjaya mencipta jadual bulatan pengguna.
Petua Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1022: Kunci Pendua dalam Penciptaan Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!