Penyelesaian Masalah: Menyelesaikan Ralat "Tidak Boleh Menukar Lajur Digunakan dalam Kekangan Kunci Asing"
Apabila cuba mengubah suai jadual, anda mungkin menghadapi ralat "Tidak Boleh Tukar Lajur 'column_name': digunakan dalam kekangan kunci asing". Ralat ini menunjukkan bahawa lajur dirujuk dalam kekangan kunci asing, dan mengubahnya akan memecahkan integriti rujukan pangkalan data.
Untuk menyelesaikan isu ini, anda boleh mengikuti langkah berikut:
1. Memahami Ralat:
Mesej ralat menyediakan dua maklumat penting:
2. Memeriksa Pernyataan CREATE TABLE:
Periksa pernyataan CREATE TABLE yang asal untuk mengenal pasti kekangan kunci asing dan butirannya. Dalam senario yang disediakan, kekangan dinamakan "fk_fav_food_person_id", dan ia merujuk kepada lajur "person_id" dalam jadual "favorite_food".
3. Melumpuhkan Pemeriksaan Kunci Asing (Awas!):
Untuk mengubah suai lajur yang terlibat dalam kekangan kunci asing, anda boleh melumpuhkan semakan kunci asing buat sementara waktu. Ini adalah operasi yang berpotensi berbahaya, jadi penting untuk berhati-hati dan mempunyai sandaran pangkalan data anda. Untuk melumpuhkan semakan kunci asing, gunakan pernyataan berikut:
SET FOREIGN_KEY_CHECKS = 0;
4. Melaksanakan Pengubahan:
Setelah semakan kunci asing dilumpuhkan, anda boleh meneruskan dengan pengubahan yang diingini. Dalam contoh yang diberikan, lajur person_id kini boleh diubah suai kepada nilai kenaikan automatik menggunakan pernyataan berikut:
ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
5. Mendayakan Semula Pemeriksaan Kunci Asing:
Selepas membuat perubahan yang diperlukan, pastikan anda mendayakan semula semakan kunci asing untuk mengekalkan integriti pangkalan data anda:
SET FOREIGN_KEY_CHECKS = 1;
Nota Awas:
Adalah penting untuk diingat bahawa melumpuhkan semakan kunci asing boleh membawa akibat yang serius jika tidak dikendalikan dengan teliti. Integriti data mungkin terjejas jika baris ditambah atau dialih keluar daripada jadual yang terlibat dalam perhubungan utama asing. Oleh itu, adalah penting untuk menguji perubahan secara menyeluruh dalam persekitaran pembangunan sebelum menggunakannya pada sistem pengeluaran.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Tidak Boleh Menukar Lajur Digunakan dalam Kekangan Utama Asing'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!