MySQLはtruncateコマンドを使用してデータベース内のすべてのテーブルを素早くクリアします

MySQLはtruncateコマンドを使用してデータベース内のすべてのテーブルを素早くクリアします

1. まずSELECT文を実行して、すべての切り捨て文を生成します。

ステートメント形式:

select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where table_schema in ('データバンク1','データバンク2');

dbname という名前のデータベースを例にとり、select ステートメントを実行します。

mysql> INFORMATION_SCHEMA.TABLES から CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') を選択します。ここで、table_schema は ('dbname'); 
+--------------------------------------------------------------+ 
| CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') | 
+--------------------------------------------------------------+ 
| TABLE dbname.ABOUTUSINFO を切り捨てます。| 
| TABLE dbname.ABUTMENT を切り捨てます。| 
| TABLE dbname.ABUTMENTFILE を切り捨てます。| 
| TABLE dbname.ACHVORG を切り捨てます。| 
| TABLE dbname.WORKFLOWNODE を切り捨てます。| 
| TABLE dbname.ZONESERVICE を切り捨てます。| 
| TABLE dbname.ZONESERVICEFILE を切り捨てます。| 
+--------------------------------------------------------------+ 
7行セット 

マイSQL> 

2. 各切り捨てステートメントの前後の「|」を空白文字に置き換えます。

テキスト エディター (Notepad++ など) を使用して、各切り捨てステートメントの前後の "|" を空白文字に置き換え、複数のステートメントを一度にコピーして実行できるようにします。

交換前:

交換後:

3. truncate文をmysqlのコマンドラインにコピーして実行する

実行のために、truncate ステートメントを mysql コマンドラインにコピーします。一度に複数のステートメントをコピーして実行できます。

mysql> TABLE dbname.ZONESERVICE を切り捨てます。  
クエリは正常です。影響を受けた行は 0 行です 
マイSQL> 

これでデータベース内のすべてのテーブルがクリアされます。簡単ですよ〜

切り捨て、ドロップ、削除の比較

前述のように、truncate は delete や drop と非常によく似ています。しかし、実際には、これら 3 つの間には依然として大きな違いがあります。以下は、3 つの類似点と相違点の簡単な比較です。

  • truncate と drop は DDL ステートメントであり、実行後にロールバックすることはできません。delete は DML ステートメントであり、ロールバックできます。
  • 切り捨てはテーブルにのみ適用できますが、削除とドロップはテーブル、ビューなどに適用できます。
  • Truncate はテーブル内のすべての行をクリアしますが、テーブル構造とその制約、インデックスなどは変更されません。drop はテーブル構造とそれが依存する制約、インデックスなどを削除します。
  • 切り捨てはテーブルの自動増分値をリセットしますが、削除はリセットしません。
  • 切り捨てではテーブルに関連付けられた削除トリガーはアクティブになりませんが、削除ではアクティブになります。
  • 切り捨て後、テーブルとインデックスが占めるスペースは初期サイズに復元されます。削除操作ではテーブルまたはインデックスが占めるスペースは削減されず、drop ステートメントによってテーブルが占めるスペースがすべて解放されます。

これで、MySQL truncate コマンドを使用してデータベース内のすべてのテーブルをすばやくクリアする方法について説明したこの記事は終了です。MySQL truncate を使用してデータベース テーブルをクリアする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Navicat Premium がデータベースに接続すると、次のエラー メッセージが表示されます: 2003 ''localhost'' の MySQL サーバーに接続できません (10061)
  • Alibaba Cloud Server に MySQL データベースをインストールする詳細なチュートリアル
  • MySQL データベースのバックアップ プロセスに関する注意事項
  • IntelliJ IDEA で Java を使用して MySQL データベースに接続する方法の詳細な説明
  • MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します
  • JmeterはJDBCリクエストに基づいてMySQLデータベーステストを実装します
  • MySQLデータベースに接続してデータを読み取るPythonの実装
  • PythonでMySQLデータベースを操作する
  • ローカルのMySQLをサーバーデータベースに移行する方法

<<:  静的リソースファイルのアクセスログをフィルタリングするNginxの実装

>>:  VueはPCで写真をアップロードする機能を実現

推薦する

Linux での Nginx アンチホットリンクと最適化の実装コード

バージョン番号を非表示バージョン番号は非表示になっていません。セキュリティを強化するために、バージョ...

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

Dockerに関するよくある質問

Docker はポートを IPv6 にのみマッピングし、IPv4 にはマッピングしません。 dock...

この記事ではMySQLのNULLについて説明します。

目次序文MySQL の NULL 2 NULL占有長3 NULL値の比較4SQLはNULL値を処理す...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

Windows Server 2016 AD サーバーをセットアップする手順 (画像とテキスト)

導入: AD は Active Directory の略称で、中国語では Active Direct...

MySQLで数千万のテストデータを素早く作成する方法

述べる:この記事で扱うデータ量は 100 万です。数千万のデータが必要な場合は、量を増やすだけで済み...

mysql ダーティ ページとは何ですか?

目次ダーティページ(メモリページ)ダーティページが表示されるのはなぜですか?メモリ管理メカニズムの簡...

マーキー要素は、スクロールするフォントや画像などの効果を実装します。

マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...

docker に nacos をインストールしてデータベースを構成する詳細なチュートリアル

環境の準備 Docker環境 MySQL 5.7 (公式イメージはmysql8をサポートしていません...

HTMLの最適化によりWebページの速度が向上

明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...

SQL インジェクション脆弱性プロセスの例と解決策

コード例: パブリッククラスJDBCDemo3 { パブリック静的voiddemo3_1(){ bo...

VueのTodoListケースの詳しい説明

<テンプレート> <div id="ルート"> <...

Vue.js フロントエンド Web ページ ポップアップ非同期動作例の分析

目次1. 序文2. ポップアップコンポーネントを2つ見つける3. 自分で作る3.1. Promise...