Rumah >pangkalan data >tutorial mysql >Ralat MySQL 150 & 1005: Mengapa Saya Tidak Boleh Mencipta Perhubungan Utama Asing?

Ralat MySQL 150 & 1005: Mengapa Saya Tidak Boleh Mencipta Perhubungan Utama Asing?

DDD
DDDasal
2024-11-26 13:37:10828semak imbas

MySQL Error 150 & 1005: Why Can't I Create Foreign Key Relationships?

Ralat Kunci Asing MySql 150: Enigma Membingungkan

Apabila cuba mencipta jadual "foo" dan "bar" dengan hubungan kunci asing , anda menghadapi ralat 1005 (HY000) dengan merujuk kepada ralat 150. Ralat ini boleh mengecewakan, meninggalkan anda bingung tentang puncanya.

Menurut dokumentasi MySQL mengenai Kekangan KUNCI ASING, masalah timbul apabila mencipta semula jadual yang dijatuhkan yang mempunyai rujukan kunci asing. Jadual mesti mematuhi kekangan kunci asing dengan mempunyai nama dan jenis lajur yang sepadan, serta indeks pada kunci yang dirujuk. Jika syarat ini tidak dipenuhi, MySQL mengembalikan ralat 1005, dengan ralat asas 150.

Kemungkinan ralat anda disebabkan oleh fakta bahawa jadual "foo" tidak ditakrifkan sebagai jadual InnoDB. Dokumentasi MySQL secara eksplisit menyatakan bahawa kedua-dua jadual mestilah jadual InnoDB dan bukan sementara.

Dengan mengubah suai pertanyaan penciptaan jadual "foo" untuk menentukan enjin InnoDB:

mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;

Anda seharusnya berjaya mencipta jadual "bar" dengan kekangan kunci asing, menyelesaikan ralat 150.

Atas ialah kandungan terperinci Ralat MySQL 150 & 1005: Mengapa Saya Tidak Boleh Mencipta Perhubungan Utama Asing?. 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