Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat MySQL 1022 (Kunci Pendua) Semasa Mencipta Jadual?

Mengapa Saya Mendapat Ralat MySQL 1022 (Kunci Pendua) Semasa Mencipta Jadual?

Mary-Kate Olsen
Lepaskan: 2024-11-30 17:00:12
asal
303 orang telah melayarinya

Why Am I Getting a MySQL Error 1022 (Duplicate Key) When Creating a Table?

Tidak Boleh Menulis; Kunci Pendua Semasa Mencipta Jadual

Anda menghadapi Ralat 1022 semasa cuba mencipta jadual baharu disebabkan oleh entri kunci utama pendua. Walaupun selepas menyemak pertanyaan, anda mungkin menghadapi kesukaran untuk mengenal pasti sumber pendua. Mari kita siasat lebih lanjut.

Pertanyaan yang anda berikan mengandungi kekangan bernama "iduser" sebagai kunci asing untuk lajur "userId". Selain itu, ia menentukan kekangan bernama "idcategory" untuk lajur "circleId". Nama kekangan ini nampaknya menjadi punca kepada isu.

Kekangan dan Penduaan

Kekangan dalam MySQL mestilah unik merentas seluruh pangkalan data, bukan hanya untuk jadual tertentu sedang dicipta atau diubah suai. Oleh itu, ada kemungkinan anda sudah mempunyai jadual atau indeks lain dalam pangkalan data anda yang menggunakan nama kekangan "iduser" atau "idcategory". Konflik ini membawa kepada ralat kunci pendua.

Mengenal pasti Kekangan Pendua

Untuk menentukan tempat kekangan ini sedang digunakan, laksanakan pertanyaan berikut:

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
Salin selepas log masuk

Pertanyaan ini akan memaparkan jadual dan skema di mana "iduser" dan "idcategory" kekangan dirujuk.

Penyelesaian

Untuk menyelesaikan ralat, anda perlu menamakan semula kekangan pendua. Pertimbangkan untuk menggunakan nama unik yang khusus untuk jadual semasa, seperti "fk_user" untuk kekangan kunci asing pada lajur "userId". Setelah kekangan dinamakan semula dan pertanyaan dikemas kini, anda sepatutnya berjaya mencipta jadual tanpa ralat kunci pendua.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1022 (Kunci Pendua) Semasa Mencipta Jadual?. 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