Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat MySQL 1022: \'Tidak boleh menulis; kunci pendua dalam jadual.\' Walaupun Saya Hanya Ada Satu Kunci?

Mengapa Saya Mendapat Ralat MySQL 1022: \'Tidak boleh menulis; kunci pendua dalam jadual.\' Walaupun Saya Hanya Ada Satu Kunci?

Barbara Streisand
Lepaskan: 2024-11-01 14:26:29
asal
209 orang telah melayarinya

 Why Am I Getting MySQL Error 1022:

Ralat MySQL 1022: Perlanggaran Nama Kunci Asing

Semasa cuba mencipta jadual menggunakan MySQL, anda menghadapi Ralat 1022: "Tidak boleh menulis; kunci pendua dalam jadual." Aspek yang unik ialah jadual hanya mentakrifkan satu kunci, tetapi ralat berterusan.

Setelah disiasat, nampaknya coretan tertentu dalam definisi jadual mencetuskan ralat:

<code class="sql">CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,</code>
Salin selepas log masuk

Walaupun takrif kunci asing yang serupa wujud dalam jadual lain tanpa isu, masalahnya terletak pada nama kunci asing: error_id.

Punca Punca:

Isu ini timbul kerana nama kunci asing tidak boleh sama dengan nama kunci asing lain dalam keseluruhan model pangkalan data. Ini bermakna jika dua jadual merujuk jadual yang sama, kunci asing dalam setiap jadual mesti mempunyai nama unik.

Penyelesaian:

Untuk menyelesaikan ralat, hanya berikan kunci asing dalam soalan nama yang berbeza. Sebagai contoh, anda boleh menamakannya fk_error_id. Ini akan membezakannya daripada mana-mana kunci asing lain dalam model dan membenarkan MySQL mencipta jadual dengan jayanya.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1022: \'Tidak boleh menulis; kunci pendua dalam jadual.\' Walaupun Saya Hanya Ada Satu Kunci?. 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