Melumpuhkan Kekangan Kunci Asing dalam MySQL untuk Manipulasi Data Sementara
Dalam MySQL, kekangan kunci asing memastikan integriti data dengan menghalang ketidakkonsistenan dalam hubungan antara jadual . Walau bagaimanapun, kekangan ini kadangkala boleh menghalang manipulasi data pantas.
Masalah:
Apabila memadamkan tika model dalam Django, ralat mungkin berlaku disebabkan oleh kekangan kunci asing. Contohnya:
cursor.execute("DELETE FROM myapp_item WHERE n = %s", n) transaction.commit_unless_managed() # a foreign key constraint fails here cursor.execute("DELETE FROM myapp_style WHERE n = %s", n) transaction.commit_unless_managed()
Penyelesaian:
Untuk melumpuhkan kekangan kunci asing buat sementara waktu dan membenarkan pemadaman, anda boleh menggunakan sama ada arahan DISABLE KEYS atau tetapkan pembolehubah FOREIGN_KEY_CHECKS kepada 0.
Menggunakan KUNCI LUmpuhkan:
DISABLE KEYS
Arahan ini melumpuhkan semua kekangan kunci asing untuk sesi semasa.
Menggunakan SET Pembolehubah FOREIGN_KEY_CHECKS:
SET FOREIGN_KEY_CHECKS=0;
Arahan ini menetapkan pembolehubah FOREIGN_KEY_CHECKS global kepada 0, melumpuhkan semua kekangan kunci asing.
Penting: Selepas melaksanakan data yang dikehendaki manipulasi, ingat untuk mendayakan semula kekangan kunci asing dengan menetapkan FOREIGN_KEY_CHECKS kembali kepada 1:
SET FOREIGN_KEY_CHECKS=1;
Atas ialah kandungan terperinci Bagaimana untuk Melumpuhkan Sementara Kekangan Utama Asing dalam MySQL untuk Manipulasi Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!