実際には、次のように直接すべてのテーブルを削除する場合:
Navicatは直接すべてのテーブルを選択し、右の表を削除するには、決定する方法プロンプトがあるでしょう、それは最初のテーブルと外部キーワードテーブルは削除されません、限り、いくつかのグループを削除し、決定する方法は、テーブルを置くように、オーバー削除されますそれはあまりにも面倒ではありません。
ターン:
MySQLの外部キー制約は、すべてのテーブルを削除し、外部キー制約を無効にします
免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/junlovejava/article/details/78360253
データの一貫性とデータの整合性を確保するために、データベースの外部キーが、しかしまた、ある程度のデータ更新のパフォーマンス度。開発では、我々は、使用のPowerDesignerの構造を明確にするために、物理データモデルを確立し、可読性を高め、テーブルとテーブル間の関係を作成します。
実際の開発では、データベースは、一般的に存在していない主要な開発マニュアル外のアリは、カスケード操作でアプリケーション層に取り組まなければならないすべての外部キー概念を外部キーを強制しないこともあります。データベース内の外部キーがすでに存在する場合、どのようにそれを行うには?
すべての外部キーテーブルを削除します。
発見しschema
、すべての外部キーの名前をして、生成されたDELETE文をステッチして、実行します。
SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,' ;') FROM information_schema.TABLE_CONSTRAINTS c WHERE c.TABLE_SCHEMA='库名' AND c.CONSTRAINT_TYPE='FOREIGN KEY';
- 1
- 2
- 3
MySQLの変数を変更します。FOREIGN_KEY_CHECKS
-- 禁用外键约束
SET FOREIGN_KEY_CHECKS = 0 -- 启用外键约束 SET FOREIGN_KEY_CHECKS = 1;
- 1
- 2
- 3
- 4
のでFOREIGN_KEY_CHECKS
、接続が再確立されたときに、セッションに基づいて、セッションを閉じて、この変数は、我々はまた、世界的なことができます、もちろん、外部キー制約を開くことですデフォルト値を復元しますFOREIGN_KEY_CHECKS
変数を。
SET GLOBAL FOREIGN_KEY_CHECKS = 0;
- 1
または:
SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0;
- 1
編集した後、我々は、変更の結果を確認することができます
SELECT @@FOREIGN_KEY_CHECKS;