偽の外部キー制約の失敗
データベースから area という名前のテーブルを削除しようとすると、外部キーを示すエラー メッセージが発生しました制約の失敗。 area との外部キー関係を持つ他のすべてのテーブルを削除したにもかかわらず、制約は引き続き残りました。
考えられる理由
データベースで使用されるストレージ エンジンである InnoDB通常、外部キーが現在のスキーマの外部のテーブルを参照することは許可されません。したがって、外部キー制約が依然として領域テーブルの削除を妨げている理由は不可解でした。
解決策
さらに調査した結果、特定のデータベース ツールが、 MySQL Query Browser や phpMyAdmin など、クエリごとに新しい接続を開きます。この動作により、複数のクエリ間での変更の伝播が防止されます。この問題を解決するには、単一のクエリ内ですべての削除ステートメントを実行する必要があります。
SET FOREIGN_KEY_CHECKS=0; -- Disable foreign key checks DROP TABLE my_first_table_to_drop; DROP TABLE my_second_table_to_drop; SET FOREIGN_KEY_CHECKS=1; -- Re-enable foreign key checks
外部キー チェックを無効にすると、制約エラーを引き起こすことなく、外部キー関係に関係するテーブルを削除できます。その後、外部キー チェックを再度有効にすると、将来の操作に対するデータベースの整合性が確保されます。
以上が複数のクエリを使用して外部キー制約を持つテーブルを削除できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。