Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat \'Tidak boleh menulis; kunci pendua dalam jadual\' (Ralat 1022) Semasa Mencipta Jadual MySQL?

Mengapa Saya Mendapat Ralat \'Tidak boleh menulis; kunci pendua dalam jadual\' (Ralat 1022) Semasa Mencipta Jadual MySQL?

DDD
DDDasal
2024-10-28 04:07:20399semak imbas

Why am I Getting

Penduaan Dikesan: Kegagalan Penciptaan Jadual MySQL (Ralat 1022)

Semasa cuba mencipta jadual menggunakan MySQL Workbench, pengguna mungkin menghadapi masalah yang digeruni ralat 1022: "Tidak boleh menulis; kunci pendua dalam jadual." Isu ini timbul walaupun pernyataan SQL yang kelihatan mudah digunakan untuk penciptaan jadual. Apabila diteliti lebih dekat, masalahnya menjadi jelas:

Pelakunya: Nama Kunci Asing Yang Sama

Mesej ralat berpunca daripada kehadiran berbilang kunci asing dengan nama yang sama dalam model pangkalan data yang sama. Untuk memahami konsep ini, pertimbangkan analogi berikut:


  • Dalam dunia perniagaan, setiap pekerja dikaitkan dengan satu jabatan.

  • < ;li>Begitu juga, dalam pangkalan data, setiap baris dalam jadual anak harus merujuk satu baris dalam jadual induk.
  • Mekanisme rujukan ini ditubuhkan melalui kunci asing, yang bertindak sebagai jambatan antara jadual.

Isu timbul apabila dua kunci asing berbeza dalam jadual berbeza merujuk lajur yang sama dalam jadual induk. Sama seperti pekerja tidak boleh bekerja dalam dua jabatan serentak, baris jadual anak tidak boleh mempunyai berbilang kunci asing yang menghala ke baris jadual induk yang berbeza.

Contoh Fizikal

Pertimbangkan model pangkalan data berikut:


  • Jadual "Katalog" mengandungi senarai produk.

  • Jadual "Pembekal" mengandungi senarai pembekal.

Jika kedua-dua jadual mengandungi kunci asing bernama "id_pembekal" yang merujuk kepada jadual "Pembekal", MySQL akan mengembalikan ralat 1022. Untuk menyelesaikannya isu ini, adalah penting untuk memberikan nama unik kepada kunci asing.

Menyelesaikan Konflik Penamaan

Untuk membetulkan ralat, ikut langkah berikut:

  1. Buka pernyataan SQL dan cari definisi kunci asing.
  2. Kenal pasti sebarang nama kunci asing pendua.
  3. Namakan semula kunci asing pendua kepada nama unik.
  4. Laksanakan pernyataan SQL yang dikemas kini untuk mencipta jadual.

Dengan menangani konflik penamaan dalam kunci asing, anda boleh berjaya mencipta jadual yang dikehendaki dan mengelakkan "Tidak boleh menulis; ralat kunci pendua dalam jadual".

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Tidak boleh menulis; kunci pendua dalam jadual\' (Ralat 1022) Semasa Mencipta Jadual MySQL?. 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