mysql では、外部キーを作成すると、同じ名前のインデックスが自動的に作成されるため、外部キーの削除は許可されません。外部キーを削除するときに、同じ名前のインデックスが削除されていないと、mysqlは、外部キーがまだ存在すると考え、mysql は引き続き showkeys コマンドで外部キーを表示します。
#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 サイトの他の関連記事を参照してください。