Penyelesaian kepada kegagalan MySQL untuk menambah kunci asing: 1. Semak sama ada jenis atau saiz dua medan itu sepadan dan ubah suainya 2. Buat indeks untuk medan tempat kunci asing ditetapkan; jenis enjin jadual, Dan ubah suainya kepada enjin InnoDB 4. Semak sama ada nama kunci asing itu unik dan ubah suainya 5. Ubah suai nilai atribut lata atau tetapkan atribut medan untuk membenarkan null, dsb.
Persekitaran pengendalian tutorial ini: sistem Windows 10, MySQL versi 5.7, komputer Dell G3.
Apakah yang perlu saya lakukan jika mysql gagal menambah kunci asing?
Sebab kegagalan penciptaan kunci asing MySQL
Pertama sekali, jika data telah dimasukkan ke dalam beberapa jadual yang berkaitan dengan kunci asing, ia boleh menyebabkan asing sisipan kunci gagal
Apabila membuat kunci asing dalam MySQL, kita sering menghadapi masalah dan gagal Ini kerana terdapat banyak butiran dalam MySQL yang perlu saya perhatikan dan semak maklumat dan senaraikan sebab biasa berikut.
1. Jenis atau saiz kedua-dua medan tidak sepadan. Sebagai contoh, jika satu adalah int(10), maka kunci asing juga mesti ditetapkan kepada int(10), bukan int(11), dan bukan tinyint. Selain itu, anda juga mesti menentukan sama ada satu daripada dua medan ditandatangani dan satu lagi tidak ditandatangani (iaitu: tidak ditandatangani. verysimple.com/blog/?p=57
2. Medan yang cuba menetapkan kunci asing tidak diindeks atau bukan kunci utama. Jika salah satu daripadanya bukan kunci utama, anda mesti membuat indeks untuknya terlebih dahulu.
3. Satu atau dua meja ialah meja enjin MyISAM. Jika anda ingin menggunakan kekangan kunci asing, jadual mestilah daripada enjin InnoDB (sebenarnya, jika kedua-dua jadual adalah enjin MyISAM, ralat ini tidak akan berlaku sama sekali, tetapi kunci asing tidak akan dihasilkan, hanya indeks akan dicipta) Anda perlu menyemak Jenis enjin jadual.
4. Nama kunci asing tidak boleh diulang. Anda harus menyemak pangkalan data anda untuk memastikan nama kunci asing adalah unik, atau anda boleh menambah beberapa aksara rawak selepas nama kunci untuk menguji sama ada ini puncanya.
5. Anda boleh menetapkan ON DELETE SET NULL, tetapi medan kunci yang berkaitan ditetapkan kepada nilai NOTS NULL. Anda boleh menyelesaikan masalah dengan mengubah suai nilai atribut lata atau menetapkan atribut medan untuk membenarkan null.
6 Sila pastikan pilihan Charset dan Collate anda konsisten pada tahap jadual dan tahap medan.
7 Anda mungkin telah menetapkan nilai lalai untuk kunci asing, seperti lalai=0.
8. Terdapat ralat sintaks dalam pernyataan ALTER
Apabila ralat berlaku, semak reka bentuk jadual dan medan pangkalan data dengan teliti. Saya juga mengesyorkan agar semua orang cuba menggunakan alat untuk mereka bentuk dan mencipta pangkalan data, yang boleh mengurangkan kebarangkalian ralat.
Pembelajaran yang disyorkan: "Tutorial Video MySQL"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika mysql gagal menambah kunci asing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!