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

Patricia Arquette
Lepaskan: 2024-10-28 04:50:30
asal
724 orang telah melayarinya

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

Ralat MySQL 1022: Menentukan Penduaan

Menghadapi ralat MySQL 1022 semasa mencipta jadual boleh membingungkan, terutamanya jika pernyataan SQL kelihatan sah . Mari kita mendalami isu ini dan mengenal pasti punca asas.

Dalam SQL yang disediakan, dinyatakan bahawa hanya terdapat satu kunci yang ditentukan untuk jadual. Walau bagaimanapun, masalahnya nampaknya terletak pada definisi kunci asing. MySQL membuang ralat 1022 apabila cuba memasukkan kunci pendua semasa pembuatan jadual.

Isu ini berpunca daripada fakta bahawa nama kunci asing (error_id) adalah sama dengan nama kunci asing lain di tempat lain dalam model. Untuk memahami perkara ini, pertimbangkan senario berikut:

  • Jadual "Katalog" mengandungi kunci asing bernama "pembekal" yang merujuk jadual "Pembekal."
  • Jadual "Produk" juga mengandungi kunci asing bernama "pembekal" yang merujuk jadual yang sama "Pembekal."

Kini, jika kedua-dua kunci asing mempunyai nama yang sama ("pembekal"), MySQL mentafsir ini sebagai "perlanggaran" dalam bahasa asing nama kunci. Untuk menyelesaikan masalah, setiap kunci asing perlu mempunyai nama unik dalam keseluruhan skema.

Sebagai contoh, anda boleh menggunakan nama yang berbeza seperti:

  • catalog_supplier untuk kunci asing masuk jadual "Katalog"
  • pembekal_produk untuk kunci asing dalam jadual "Produk"

Dengan membezakan nama kunci asing, MySQL boleh membezakan antara mereka dan mengendalikan integriti rujukan dengan betul semasa mencipta jadual .

Atas ialah kandungan terperinci Ralat MySQL 1022: Mengapa Saya Mendapat Ralat 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!