1. ホーム
  2. mysql

[解決済み] 外部キー制約をバイパスしてmysqlを強制的にドロップする

2022-04-27 04:10:01

質問

あるデータベースから1つのテーブルを除いてすべてのテーブルを削除しようとしているのですが、以下のようなエラーが出てしまいます。

親行を削除または更新できません: 外部キー制約に失敗しました。

もちろん、これらのキー制約が何であるか試行錯誤し、最終的にすべてのテーブルを削除することもできますが、すべてのテーブルを強制的に削除する速い方法があれば知りたいです(削除したくないものを再挿入できるようになるため)。

Googleで調べると、以下のような方法を提案しているサイトがありました。

mysql> SET foreign_key_checks = 0;
mysql> drop table ...
mysql> SET foreign_key_checks = 1;

簡単に言うと、もっと多くのテーブルを削除することができたのに、結局同じエラーが表示されたので、この方法は本当に効果がありませんでした。私はStack Overflowで特定のテーブルにリンクされたすべての外部キーを取得する方法を見ましたが、それは私がそれをすべてスクリプト化しない限り、あまりにも時間がかかりすぎます(他のオプションがない場合には可能です)。

データベースは4.1なので DROP DATABASE

アイデアはありますか?

解決方法は?

データを残す気はないので。 データベース全体を削除する を作成し、新しいものを作成します。