Bagaimana untuk Membetulkan Ralat 'Tidak Boleh Menukar Lajur Digunakan dalam Kekangan Utama Asing'?

Linda Hamilton
Lepaskan: 2024-11-12 11:21:02
asal
700 orang telah melayarinya

How to Fix

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:

  • Lajur dalam Soalan: Nama lajur yang tidak boleh diubah.
  • Kekangan Kunci Asing: Nama kunci asing kekangan yang merujuk kepada lajur.

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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