Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1022: Kunci Pendua dalam Penciptaan Jadual?

Bagaimana untuk Menyelesaikan Ralat MySQL 1022: Kunci Pendua dalam Penciptaan Jadual?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 11:14:14956semak imbas

How to Troubleshoot MySQL Error 1022: Duplicate Key in Table Creation?

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

  • Sentiasa pastikan bahawa nama kekangan adalah unik dalam pangkalan data anda untuk mengelakkan kemungkinan konflik.
  • Gunakan alatan seperti sistem pengurusan pangkalan data atau persekitaran pembangunan SQL untuk membantu pengurusan kekangan dan mengenal pasti sebarang isu penamaan yang berpotensi.
  • Ingat bahawa kekangan kunci asing memberikan integriti data dengan menguatkuasakan perhubungan antara jadual, tetapi mereka juga memerlukan nama kekangan yang unik.

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!

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