ホームページ  >  記事  >  データベース  >  MySQL でテーブルを削除すると「エラー 1217 (23000)... 外部キー制約が失敗しました」というメッセージが表示されるのはなぜですか?

MySQL でテーブルを削除すると「エラー 1217 (23000)... 外部キー制約が失敗しました」というメッセージが表示されるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 08:35:02291ブラウズ

Why Do I Get

MySQL: 偽の外部キー制約の処理が失敗します

実行中に「エラー 1217 (23000)... 外部キー制約が失敗します」エラーが発生しました対応する外部キー制約をすべて削除したように見えるにもかかわらず、MySQL テーブルを削除しようとすると、困惑することがあります。

この問題を解決するには、次の可能性を検討してください。

次のような理由によるデータの永続性複数の接続

MySQL Query Browser や phpMyAdmin などのデータベース管理ツールを使用すると、クエリごとに新しい接続が確立されることが観察されます。これは、テーブルが個別に削除された場合、データベースには孤立し、現在の接続で考慮されていない外部キー参照が保持されたままになる可能性があることを意味します。

解決策: 統合された Drop ステートメント

この状況を解決するには、すべてのドロップ ステートメントを 1 つのクエリに統合します。例:

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE my_first_table_to_drop;
DROP TABLE my_second_table_to_drop;
SET FOREIGN_KEY_CHECKS=1;

すべての削除ステートメントをグループ化することにより、テーブルの削除中に外部キー制約が無効になります。追加のステートメント SET FOREIGN_KEY_CHECKS=1 は、操作の完了後に外部キー チェックを再度有効にするための追加の予防措置として機能します。

以上がMySQL でテーブルを削除すると「エラー 1217 (23000)... 外部キー制約が失敗しました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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