MySql Error 1005: Can't Create Table - Uncovering the Culprit of Error 150
Dalam percubaan untuk menentukan dua jadual, khususnya ' foo' dan 'bar,' mesej ralat mengganggu proses, membayangkan ralat "ralat 150." Mari pergi ke alam MySQL untuk mendedahkan punca tersembunyi dan membongkar misteri di sebalik teka-teki kod ini.
Setelah diperiksa lebih dekat, kedua-dua pertanyaan kelihatan tanpa ralat yang jelas. Walau bagaimanapun, mesej ralat yang disertakan menunjukkan sebaliknya. Memeriksa mesej ralat dengan teliti, kami terjumpa rujukan kepada ralat 150. Menyelami kedalaman dokumentasi MySQL, kami berpeluang mendapat konsep Kekangan KUNCI ASING.
Dalam konteks Kekangan KUNCI ASING, satu nota yang ingin tahu menarik perhatian kami: "Jika anda mencipta semula jadual yang telah digugurkan, ia mesti mempunyai definisi yang mematuhi kunci asing kekangan merujuknya." Pendedahan ini mendorong kita untuk menyelidiki keadaan yang membawa kepada kesilapan ini. Adalah penting bahawa jadual yang dicipta semula ("foo" dalam kes kami) mematuhi nama lajur, jenis data dan definisi indeks yang diperlukan oleh kekangan kunci asing. Sebarang penyimpangan daripada spesifikasi ini boleh mencetuskan MySQL untuk mengeluarkan ralat 1005, disertai dengan rujukan kepada ralat 150.
Memandangkan mesej ralat dan cerapan yang diperoleh daripada dokumentasi MySQL, syak wasangka kami terletak pada kemungkinan 'foo' mungkin tidak dicipta menggunakan enjin storan InnoDB. Semakan dokumentasi mengesahkan syak wasangka ini: "Kedua-dua jadual mestilah jadual InnoDB dan ia mestilah bukan jadual SEMENTARA."
Dengan memastikan kedua-dua 'foo' dan 'bar' sememangnya jadual InnoDB dan dengan mengelakkan penggunaan jadual SEMENTARA, kita boleh menghapuskan kemungkinan punca ralat ini. Perlu diingat bahawa faktor lain juga boleh menyumbang kepada ralat 150, tetapi senario tertentu ini selaras dengan maklumat yang diberikan.
Atas ialah kandungan terperinci Ralat MySQL 1005 & 150: Mengapa Saya Tidak Boleh Mencipta Jadual Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!