Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Membuang Ralat 1025 'Ralat pada Nama Semula' Apabila Menggugurkan Lajur?

Mengapa MySQL Membuang Ralat 1025 'Ralat pada Nama Semula' Apabila Menggugurkan Lajur?

DDD
Lepaskan: 2024-11-30 20:42:12
asal
980 orang telah melayarinya

Why Does MySQL Throw Error 1025

Ralat MySQL 1025: Membongkar Teka-teki 'Ralat pada Nama Semula'

Apabila melaksanakan pertanyaan 'alter table' untuk menggugurkan lajur, anda mungkin menghadapi ralat MySQL 1025, disertai dengan mesej 'Ralat pada nama semula'. Ralat ini biasanya muncul dalam jadual menggunakan enjin InnoDB.

Di Sebalik Ralat: Kekangan Utama Asing

Isu ini sering berpunca daripada kekangan kunci asing. Apabila cuba menjatuhkan lajur, anda mungkin menemui kunci asing yang merujuknya. MySQL memerlukan anda menggugurkan kunci asing terlebih dahulu untuk memastikan integriti rujukan.

Mendedahkan Nama Kunci Asing

Untuk mengenal pasti kunci asing yang dikaitkan dengan lajur yang ingin anda lepaskan , laksanakan pertanyaan ini:

SHOW CREATE TABLE region;
Salin selepas log masuk

Pertanyaan ini akan mendedahkan nama kunci asing, yang biasanya mengikuti corak:

CONSTRAINT <foreign_key_name> FOREIGN KEY (<column_name>) REFERENCES <referenced_table> (<referenced_column>)
Salin selepas log masuk

Pembetulan Langkah demi Langkah

  1. Lepaskan kunci asing menggunakan namanya:
ALTER TABLE region DROP FOREIGN KEY <foreign_key_name>;
Salin selepas log masuk
  1. Lepaskan yang dikehendaki lajur:
ALTER TABLE region DROP COLUMN <column_name>;
Salin selepas log masuk

Contoh Aliran

Menggunakan contoh yang disediakan dalam soalan, langkahnya ialah:

  1. Laksanakan wilayah SHOW CREATE INDEX; untuk mengenal pasti kunci asing.
  2. Lepaskan kunci asing menggunakan rantau ALTER TABLE DROP FOREIGN KEY region_ibfk_1;
  3. Lepaskan lajur country_id dengan ALTER TABLE region DROP COLUMN country_id;

Ingat, penyelesaian ini disesuaikan untuk jadual InnoDB dengan kunci asing kekangan. Dalam senario lain, ralat mungkin disebabkan oleh faktor yang berbeza.

Atas ialah kandungan terperinci Mengapa MySQL Membuang Ralat 1025 'Ralat pada Nama Semula' Apabila Menggugurkan Lajur?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan