ホームページ  >  記事  >  データベース  >  テーブルを削除すると「偽の外部キー制約に失敗しました」というエラーが発生するのはなぜですか?

テーブルを削除すると「偽の外部キー制約に失敗しました」というエラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-05 22:33:02653ブラウズ

Why Does

「偽の外部キー制約の失敗」の説明と解決

エラー メッセージ「ERROR 1217 (23000) at line 40: Cannotテーブルを削除しようとすると、「親行の削除または更新: 外部キー制約が失敗します」というメッセージが表示される場合は、根本的な原因を理解することが重要です。問題のあるテーブルへの外部キー参照を持つ他のすべてのテーブルを削除したにもかかわらず、エラーは継続します。

このシナリオでは、クエリごとに個別の接続を使用する MySQL Query Browser または phpMyAdmin から問題が発生します。これを解決するには、すべてのドロップ ステートメントを次のように 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 ステートメントは、外部キー チェックを再度有効にして、データの整合性を確保します。

InnoDB はクロススキーマ外部キーをサポートしていないことに注意することが重要です。したがって、この問題は、現在のデータベース スキーマの外部にある外部参照によって引き起こされるものではありません。

以上がテーブルを削除すると「偽の外部キー制約に失敗しました」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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