Rumah > Artikel > pangkalan data > Mengapa Saya Mendapat Ralat MySQL 1022: \"Tidak boleh menulis; kunci pendua dalam jadual.\" Walaupun Saya Hanya Ada Satu Kunci?
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>
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!