Rumah >pangkalan data >tutorial mysql >Tidak dapat mencipta 'table_name' (errno: 150) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 150

Tidak dapat mencipta 'table_name' (errno: 150) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 150

WBOY
WBOYasal
2023-10-05 09:09:111224semak imbas

Can't create table 'table_name' (errno: 150) - 如何解决MySQL报错:无法创建表,错误编号:150

Tidak boleh membuat jadual 'nama_jadual' (errno: 150) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 150, memerlukan contoh kod khusus #🎜 🎜#

Apabila menggunakan pangkalan data MySQL, anda kadangkala menghadapi masalah mencipta jadual. Salah satu masalah biasa ialah jadual tidak boleh dibuat dengan nombor ralat 150. Ralat ini biasanya menunjukkan ralat kekangan kunci asing semasa mencipta jadual. Artikel ini menerangkan cara menyelesaikan masalah ini dan menyediakan contoh kod khusus.

Dalam MySQL, kunci asing digunakan untuk mewujudkan hubungan antara jadual. Apabila kita menggunakan kekangan kunci asing semasa membuat jadual, jika syarat kunci asing tidak dipenuhi, jadual tidak boleh dibuat dan nombor ralat 150 akan berlaku.

Langkah pertama untuk menyelesaikan masalah ini ialah menyemak sama ada jenis medan dan kekangan jadual yang berkaitan adalah konsisten. Medan yang dikaitkan dengan kunci asing mesti mempunyai jenis data dan kekangan yang sama untuk mewujudkan hubungan. Berikut ialah contoh yang menunjukkan cara mencipta dua jadual dan mewujudkan hubungan kunci asing:

-- 创建部门表
CREATE TABLE department (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

-- 创建员工表
CREATE TABLE employee (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    department_id INT,
    FOREIGN KEY (department_id) REFERENCES department(id)
);

Dalam contoh di atas, kami telah mencipta dua jadual: jadual jabatan dan jadual pekerja. Medan department_id dalam jadual pekerja ialah kunci asing, yang merujuk medan id dalam jadual jabatan. Melalui kata kunci KUNCI ASING dan klausa RUJUKAN, kami mewujudkan hubungan kunci asing.

Jika anda menghadapi ralat nombor 150 semasa membuat jadual, sebab yang paling biasa ialah jenis medan atau kekangan yang dikaitkan dengan kunci asing tidak sepadan. Sebagai contoh, jika medan department_id dalam jadual pekerja adalah jenis INT, dan medan id dalam jadual jabatan adalah jenis VARCHAR, masalah ini akan berlaku. Kita perlu memastikan bahawa jenis medan dan kekangan adalah konsisten untuk berjaya mencipta jadual.

Selain itu, terdapat beberapa situasi lain yang boleh mencetuskan ralat nombor 150. Berikut ialah beberapa masalah dan penyelesaian biasa:

    Turutan jadual: Jika anda cuba mewujudkan hubungan kunci asing semasa mencipta jadual, tetapi jadual yang dirujuk belum lagi dibuat, nombor ralat akan muncul 150. Penyelesaiannya adalah untuk mencipta jadual yang dirujuk dahulu, dan kemudian mencipta jadual yang merujuknya.
  1. Set dan penyusunan aksara: Jika set aksara dan penyusunan jadual yang berkaitan tidak konsisten, ralat nombor 150 juga akan berlaku. Penyelesaiannya adalah untuk memastikan set aksara dan penyusunan jadual yang berkaitan adalah sama.
  2. Kunci utama medan: Jika medan yang dirujuk semasa membuat kunci asing bukan kunci utama, ia juga akan menyebabkan ralat nombor 150. Pastikan medan yang dirujuk ialah kunci utama dan mempunyai jenis data yang sama.
Ringkasnya, ralat nombor 150 biasanya menunjukkan ralat kekangan kunci asing yang berlaku apabila jadual tidak boleh dibuat. Kunci untuk menyelesaikan masalah ini adalah untuk menyemak sama ada jenis medan dan kekangan jadual yang berkaitan adalah konsisten, dan memastikan bahawa susunan mencipta jadual dan tetapan kunci utama medan adalah betul. Jika masalah berterusan, semak dan nyahpepijat kod dengan teliti untuk mencari kemungkinan punca ralat yang lain.

Saya harap contoh kod dan penyelesaian yang disediakan dalam artikel ini dapat membantu anda menyelesaikan masalah ralat MySQL: Tidak dapat mencipta jadual, ralat nombor 150. Semasa anda menulis dan menyahpepijat kod anda, pastikan anda memeriksa dan mengesahkan struktur dan perhubungan jadual anda dengan teliti untuk memastikan kekangan kunci asing dipenuhi. Jika anda mempunyai soalan lain, sila rujuk dokumentasi rasmi MySQL atau rujuk pakar yang berkaitan.

Atas ialah kandungan terperinci Tidak dapat mencipta 'table_name' (errno: 150) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 150. 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