(復刻版)MySQLのすべてのテーブルを削除するには、外部キー制約、外部キー制約を無効にします

実際には、次のように直接すべてのテーブルを削除する場合:

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;

おすすめ

転載: www.cnblogs.com/XingXiaoMeng/p/11706484.html
おすすめ