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

推薦する

MySQL スローログ実践のまとめ

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...

Vue 関数のアンチシェイクとスロットリングの正しい使用方法

序文1. デバウンス: 高頻度イベントがトリガーされた後、関数は n 秒以内に 1 回だけ実行されま...

左右の幅を固定し、中央の幅を適応させたHTMLレイアウトのソリューションの詳細な説明

この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

プロフェッショナルおよび非プロフェッショナルのウェブデザイン

まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...

SQLはROW_NUMBER() OVER関数を使用してシーケンス番号を生成します。

構文: ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY...

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...

JavaScriptでポインターの位置を取得する方法を教えます

JavaScript でポインターの位置を取得する方法は、イベント オブジェクトの pageX と ...

CentOS8 - bash: 文字化けとその解決方法

この状況は通常、中国語言語パックがインストールされていないか、デフォルトの言語設定に問題があるために...

上部の固定divは半透明効果に設定できます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

CSS 標準: vertical-align プロパティ

<br />原文: http://www.mikkolee.com/13私は最近、ver...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

CSS で波の効果を作成するためのアイデア

以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

vscodeで保存した後のHTML自動フォーマットの問題を解決する

vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...