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

推薦する

ドラッグ可能なログインボックスを実現するネイティブJS

この記事では、ネイティブ JS で実装されたドラッグ可能なログイン ボックスを紹介します。その効果は...

Docker の Windows ストレージ パス設定操作

Windows 10 に Docker をインストールする場合、コンテナタイプを Linux コンテ...

ログインフォームを実装するためのJavaScript

この記事の例では、ログインフォームを実装するためのJavaScriptの具体的なコードを参考までに共...

Tomcatアーキテクチャの原則をアーキテクチャ設計に分析する

目次1. 学習目標1.1. Tomcatアーキテクチャの設計と原則をマスターして社内スキルを向上させ...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...

jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...

Docker はクラスター MongoDB 実装手順を構築します

序文会社の業務上のニーズにより、独自の MongoDB サービスを構築する予定です。MongoDB ...

MySQL データ挿入最適化メソッドconcurrent_insert

スレッドがテーブルに対して DELAYED ステートメントを実行するときに、そのようなハンドラーが存...

vue-cropper コンポーネントは画像の切り取りとアップロードを実現します

この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...

Ubuntu 18.04 システムでの Redis および phpredis 拡張機能のインストールと設定の詳細な説明

この記事では、Ubuntu 18.04 に Redis と phpredis 拡張機能をインストール...

mysql ERROR 1045 (28000) 問題の解決方法

私はmysql ERROR 1045に遭遇し、この問題に長い時間を費やしました。私はそれを自分で書き...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

MySQL複合インデックスの概要

目次1. 背景2. 複合インデックスを理解する3. 左端一致原則4. フィールド順序の影響5. 単一...

Linux SSHポートを転送する3つの方法

ssh は私が最も頻繁に使用する 2 つのコマンドライン ツールのうちの 1 つです (もう 1 つ...

Centos8 は kdc 暗号化に基づいて nfs を構築します

目次構成nfs サーバー (nfs.skills.com) nfs クライアント (client.s...