ホームページ  >  記事  >  データベース  >  mysql では外部キーを削除できないのはなぜですか?

mysql では外部キーを削除できないのはなぜですか?

藏色散人
藏色散人オリジナル
2019-04-28 15:39:323240ブラウズ

mysql では、外部キーを作成すると、同じ名前のインデックスが自動的に作成されるため、外部キーの削除は許可されません。外部キーを削除するときに、同じ名前のインデックスが削除されていないと、mysqlは、外部キーがまだ存在すると考え、mysql は引き続き showkeys コマンドで外部キーを表示します。

mysql では外部キーを削除できないのはなぜですか?

#mysql 外部キーを削除できない場合があります。どうすればよいでしょうか?以下に、mysql で外部キーの削除ができない理由とその解決策を紹介しますので、必要な友人の役に立てば幸いです。

1. MYSQL は外部キーを作成した後、同じ名前のインデックスを自動的に作成します

2. 外部キーを削除するときに、同じ名前のインデックスが削除されていない場合, MYSQL は、外部キーがまだ存在するとみなします---MYSQL は showkeys コマンドで外部キーを表示し続けます。テーブルを削除すると、MYSQL は「外部キー制約が失敗しました」というプロンプトを表示し続けます。制約は失敗します

3. 当然のことですが、show key で表示された外部キーを再度削除したい場合は、1025 エラーが報告されます。これは確かにインターネットで言われているとおり、外部キー名が間違っています。実際には、外部キーはもう存在していないためです。しかし、残念ながら、キーの表示やその他のテーブル操作を通じて外部キーがまだ存在していることがわかり、目を誤解させます。

解決策:

1. 最初にインデックスを削除します

mysql> show index from tableName;
mysql> alter table tableName drop index FKxxxxxxxxxxxxxx;

2. 外部キーを再度削除します

mysql> show keys from tableName;
mysql> alter table tableName drop foreign key FKxxxxxxxxxxxxxx;

それがうまくいかない場合は、まず外部キーを削除してからインデックスを削除してみてください。またはデータベースに再接続します。

関連する推奨事項: 「MySQL チュートリアル

以上がmysql では外部キーを削除できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。