Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat MySQL 150: Isu Kekangan Utama Asing?

Mengapa Saya Mendapat Ralat MySQL 150: Isu Kekangan Utama Asing?

Susan Sarandon
Lepaskan: 2024-11-27 17:20:14
asal
948 orang telah melayarinya

Why Am I Getting MySQL Error 150: Foreign Key Constraint Issues?

MySql Error 150: Foreign Key Constraints

Apabila melaksanakan pertanyaan untuk mencipta dua jadual, satu sebagai rujukan untuk yang lain, mesej ralat menunjukkan: "ERROR 1005 (HY000): Tidak dapat membuat jadual './test/bar.frm' (errno: 150)."

Menurut dokumentasi Kekangan KUNCI ASING MySQL, ralat timbul apabila jadual yang dicipta semula yang dirujuk oleh kekangan kunci asing tidak mematuhinya. takrifan. Khususnya, jadual yang dibuat semula mesti:

  • Mempunyai nama dan jenis lajur yang betul
  • Mempunyai indeks pada kekunci yang dirujuk

Dalam kes ini, dokumentasi mencadangkan bahawa isunya mungkin salah satu jadual, 'foo', tidak dicipta sebagai jadual InnoDB. Ini kerana kekangan kunci asing hanya boleh diwujudkan antara jadual InnoDB yang bukan SEMENTARA.

Dokumentasi menyatakan:

Both tables must be InnoDB tables and they must not be TEMPORARY tables. 
Salin selepas log masuk

Oleh itu, untuk menyelesaikan ralat, adalah disyorkan untuk memastikan bahawa jadual 'foo' dicipta sebagai jadual InnoDB sebelum cuba mewujudkan kekangan kunci asing dalam jadual 'bar'.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 150: Isu Kekangan Utama 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