Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?

Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?

Mary-Kate Olsen
Lepaskan: 2024-12-06 11:48:20
asal
576 orang telah melayarinya

Why Am I Getting MySQL Error 1005 (errno: 150) When Creating a Foreign Key Constraint?

Kod Ralat: 1005. Tidak dapat mencipta jadual ... (errno: 150)

Dalam percubaan anda untuk mencipta kekangan kunci asing antara jadual sira_no dan metal_kod , anda menemui Kod Ralat 1005, menunjukkan ketidakupayaan untuk mencipta jadual disebabkan oleh errno 150.

Ralat ini timbul kerana rujukan kunci utama yang salah dalam kod anda. Apabila mentakrifkan hubungan kunci asing, medan yang dirujuk dalam jadual induk mesti wujud, sepadan dengan jenis data dan saiz medan kunci asing dan mempunyai indeks atau menjadi kunci utama.

Langkah Penyelesaian Masalah :

  1. Semak Definisi Medan: Pastikan METAL_KODU medan dalam kedua-dua jadual mempunyai jenis dan saiz data yang sama (mis., kedua-duanya hendaklah VARCHAR(4), bukan VARCHAR(5)), termasuk sifat yang ditandatangani atau tidak ditandatangani. Semak sensitiviti huruf besar juga.
  2. Buat Indeks: Sahkan bahawa medan METAL_KODU yang dirujuk dalam jadual metal_kod mempunyai indeks. Tanpa indeks, kekangan kunci asing tidak boleh diwujudkan.
  3. Semak Jenis Jadual: Kedua-dua jadual yang terlibat dalam perhubungan mesti menggunakan enjin storan InnoDB untuk menyokong kekangan kunci asing.
  4. Periksa Nama Kunci Asing: Pastikan nama kunci asing anda (METAL_KODU) tidak menjadi pendua kunci sedia ada.
  5. Kendalikan Nilai Null: Jika medan METAL_KODU dalam jadual induk ditetapkan kepada NOT NULL dan anda telah menentukan ON DELETE SET NULL dalam kekangan kunci asing, tukar sama ada sifat lajur atau gelagat lata.
  6. Carset dan Pengumpulan: Semak sama ada set aksara dan tetapan penyusunan sepadan untuk kedua-dua jadual dan lajur utama.
  7. Alih Keluar Nilai Lalai: Jika lajur kunci asing anda mempunyai nilai lalai (mis., lalai=0), alih keluarnya.
  8. Semak Kekunci Komposit: Jika medan METAL_KODU ialah sebahagian daripada komposit masukkan ke dalam jadual induk, cipta indeks berasingan untuk medan itu untuk menyokong kekangan kunci asing.
  9. Semak Sintaks: Semak semula pernyataan ALTER TABLE anda dan pastikan nama medan ditaip dengan betul.
  10. Panjang Kunci Asing: Pastikan nama kunci asing anda tidak melebihi maksimum panjang 64 aksara.

Dengan menangani isu yang berpotensi ini, anda boleh menyelesaikan Kod Ralat 1005 dan berjaya mewujudkan hubungan kunci asing antara jadual sira_no dan metal_kod.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?. 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