MySQL にテーブルが存在するかどうかを確認し、それを一括で削除する方法

MySQL にテーブルが存在するかどうかを確認し、それを一括で削除する方法

1. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除しました。しかし結局、私たちは国を救うための回り道を見つけました。

要件: 削除するサフィックス _ を持つテーブルを削除します。

1. 最初のステップは、そのようなテーブルをすべて見つけて、テーブルを削除するためのSQLを組み立てることです。

CONCAT( 'DROP TABLE IF EXISTS ', table_name, ';' ) を選択します。 
information_schema.tables から 
table_name が '%_to be removed' のように指定されている場合;

実行結果

2. ステップ 2: 削除ステートメントを 1 つずつ実行します。能力があれば、何かを実行するスクリプトを作成することもできます。

3. SQL解析

3-1: concat 文字列連結

3-2: DROP TABLE IF EXISTS equi_accp_info__削除対象; -- このテーブルが存在するかどうかを確認し、存在する場合は削除します

補足知識: mysqlはテーブルフィールドが存在するかどうかを判断し、それを変更します

余計なことは言わないで、コードだけ見てみましょう〜

-- vrv_paw_rule テーブルに thresholdMin フィールドが存在するかどうかを確認します。存在しない場合は追加します。存在する場合は、フィールド タイプ DELIMITER を変更します。
schema_change が存在する場合はプロシージャを削除しますか?
CREATE PROCEDURE schema_change()
始める
存在しない場合 (information_schema.columns から * を選択、table_schema = DATABASE()、table_name = 'vrv_paw_rule'、column_name = 'thresholdMin')
  ALTER TABLE vrv_paw_rule に列 thresholdMin BIGINT を追加します。
それ以外  
  ALTER TABLE vrv_paw_rule MODIFY COLUMN thresholdMin BIGINT;
終了の場合; 
終わり??
区切り文字 ;

schema_change() を呼び出します。

区切りコマンド:

これは、コマンドが終了したかどうか、および MySQL がそれを実行できるかどうか (つまり、入力ターミネータを変更できるかどうか) を MySQL インタープリターに通知します。

デフォルトでは、区切り文字はセミコロン「;」です。

コマンドラインクライアントでは、コマンド行がセミコロンで終わる場合、

その後、Enter キーを押すと、MySQL はコマンドを実行します。

しかし、場合によっては、MySQL でこれを実行したくないことがあります。より多くのステートメントを入力する可能性があり、ステートメントにセミコロンが含まれる可能性があるためです。

デフォルトでは、ユーザーがすべてのステートメントを入力するまで待ってからステートメント全体を実行することはできません。

mysql はセミコロンに遭遇すると自動的に実行されるためです。

この場合、区切り文字を使用して、区切り文字を // や $$ などの他の記号に置き換えることができます。

このとき、区切り文字の役割は、小さなステートメント全体を単純にカプセル化することです。

このコマンドは主に、サブルーチン、トリガー プログラム、およびその他の MySQL 組み込みプログラムを定義するために使用されます。

MySQLでテーブルが存在するかどうかを判断し、バッチで削除する上記の操作は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL でデータを削除してもテーブル ファイルのサイズが変更されないのはなぜですか?
  • MySQL でテーブルを削除する 3 つの方法 (要約)
  • MySQL で重複レコードを見つけて削除する方法
  • MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明
  • MySQLサービスを削除する具体的な方法
  • MySQL の重複データの処理方法 (防止と削除)
  • MySQL データベース操作 (作成、選択、削除)
  • Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法
  • Linux で MySQL 8.0 サービスを完全に削除する方法
  • MySQL テーブル削除操作の実装 (delete、truncate、drop の違い)
  • MySQL で削除されたレコードが有効にならない理由のトラブルシューティング

<<:  EclipseでTomcatを作成する原理の詳細な説明

>>:  スネークゲームのアイデアを実現するためのJavaScript

推薦する

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

Ubuntu 20.04 では、隠し録音ノイズ低減機能が有効になります (推奨)

最近、 Ubuntu 20.04でkazamを使用して録音しているときに、問題が見つかりました。シス...

CSS3 で半透明の背景画像と不透明なコンテンツを実現する方法の例

以前のブログのログインページを作成していたときに、この問題に遭遇しました。突然、透明な背景画像と不透...

ウェブデザインに必須のツール: Firefox Web Developer プラグイン CSS ツールセットのチュートリアル

プラグインは Firefox ブラウザにインストールされます。 Web Developer プラグイ...

WeChatミニプログラムで検索キーワードを強調表示するサンプルコード

1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け...

Linux ネットワークプログラミングにおけるソケットオプションの実装

ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...

Linux での MongoDB のインストールと設定のチュートリアル

MongoDBインストールYumを使用してインストールすることを選択する1. repoファイルを作成...

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現しま...

Linux サーバーは最大いくつのポートを開くことができますか?

目次ポート関連の概念:ポートとサービスの関係1: nmapツールが開いているポートを検出する2: n...

Swiper+echartsは複数のダッシュボードの左右スクロール効果を実現します

この記事では、ダッシュボードの左右スクロール効果を実現するためのスワイパー+echartsの具体的な...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

Linux で Docker を使用して MySQL をインストールする手順

テスターとして、学習プロセス中に Linux でソフトウェアをインストールする必要が頻繁にある場合が...