[解決済み] MySQL DROP すべてのテーブル、外部キーを無視する
2022-03-20 23:50:16
質問
MySQL データベースから、外部キー制約を無視してすべてのテーブルを削除する簡単な方法はありますか?
どのように解決するのですか?
私は、生成された一連のドロップステートメントが有用であることを発見し、これらの調整をお勧めします。
- 生成されたドロップをこのようにデータベースに限定する。
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
注1:これはDROP文の実行ではなく、DROP文のリストを表示するだけです。 実行するには、出力をカットしてSQLエンジンに貼り付ける必要があります。
注2:VIEWがある場合、それぞれのVIEWを修正する必要があります。
DROP TABLE `VIEW_NAME`
ステートメントを
DROP VIEW `VIEW_NAME`
を手動で行う。
- 注)1. http://dev.mysql.com/doc/refman/5.5/en/drop-table.html カスケードで落とすのは意味がない/誤解を招く。
"RESTRICTとCASCADEは、移植を容易にするために許可されています。MySQL 5.5 では、これらは何も行いません。
したがって、必要であればドロップステートメントを動作させるために。
SET FOREIGN_KEY_CHECKS = 0
これは参照整合性チェックを無効にするので、必要なドロップを実行し終わったら、キーチェックを
SET FOREIGN_KEY_CHECKS = 1
- 最終的な実行は以下のようになるはずです。
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
注:SELECTの出力を簡単に利用するには、mysqlの-Bオプションが有効です。
関連
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み] テーブルやカラムに対するすべての外部キーを確認するにはどうすればよいですか?
-
[解決済み] MySQLの データベースへの **all** 特権付与
-
[解決済み] MySQLデータベースの全テーブルのレコード数を取得する
-
[解決済み] 外部キー制約をバイパスしてmysqlを強制的にドロップする
-
[解決済み】MySQLで外部キー制約を追加できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
SQL基本クエリステートメント
-
MySQLインストールチュートリアル(Linux版
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] Ubuntu linux上で動作するリモートMySQLサーバーを再起動する方法は?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み】DROPデータベース権限なしで、コマンドラインからすべてのMySQLテーブルを削除する方法は?[重複している]。