GNU/Linux >> Linux の 問題 >  >> Cent OS

MySQLでテーブルを削除する方法

はじめに

DROP TABLE ステートメントを使用すると、MySQLデータベースからテーブルを削除できます。このステートメントは、構造全体とテーブルのコンテンツを削除します。

チュートリアルでは、 DROPについて説明します。 ステートメントコマンドと表示オプションMySQLデータベースからテーブルを削除する

前提条件

  • ターミナルウィンドウ/コマンドラインへのアクセス
  • MySQLを実行しているシステム
  • 作業データベースまたはテストデータベース
  • 必要な権限を持つMySQLユーザー(DROP権限が必要)

DROPTABLEMySQLコマンド構文

MySQLでテーブルを削除するには、 DROP TABLEを使用します 声明。コマンドの基本的な構文は次のとおりです。

DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] [RESTRICT | CASCADE];

構文を分解してみましょう:

  • DROP TABLE ステートメントは、テーブルとその行を完全に削除します。
  • [TEMPORARY] オプションを使用すると、一時テーブルのみを削除できます。
  • [IF EXISTS] オプションは、テーブルが存在する場合にのみテーブルを削除します。
  • [RESTRICT] オプションは、MySQLの将来のイテレーションで使用できるようになります。子行が親行の値を参照している場合、親行が削除されないようにします。
  • [CASCADE] オプションを使用すると、行を削除すると、その行を参照する関連テーブルのすべての行も削除されます。このオプションは、MySQLの将来のイテレーションで使用できるようになります。

DROPステートメントを使用してテーブルを削除する

テーブルを完全に削除するには、MySQLシェル内に次のステートメントを入力します。

DROP TABLE table1;

table1を置き換えます 削除するテーブルの名前を指定します。出力は、テーブルが削除されたことを確認します。

DROPを使用して既存のテーブルのみを削除する

存在しないテーブルを削除しようとすると、MySQLはエラーを生成します。これは、 DROPを含めるときに問題になる可能性があります 事前定義されたスクリプトのステートメント。

テーブルが最初に存在するかどうかをMySQLで確認するには:

DROP TABLE IF EXISTS table1;

IF EXISTS オプションは、 table1の場合に警告を生成します 存在しません。

このオプションを使用すると、スクリプトがエラーでスタックするのを防ぐことができます。次のように入力して警告を表示します:

SHOW WARNINGS;

複数のテーブルを削除する方法

1つのDROPで複数のテーブルを削除するには ステートメント:

DROP TABLE IF EXISTS table1, table2, table3;

IF EXISTS オプションは、1つの警告を table1として表示します 存在しません。

一時テーブルを削除する方法

一時テーブルは、データセットを使用する直前にデータセットを生成および保存するために使用されます。

たとえば、 SELECTの結果を保存する場合があります。 一時テーブルに複数のJOINステートメントがあるステートメント。次に、一時テーブルを簡単にクエリします。

通常のテーブルを失うリスクを冒さずに一時テーブルを削除するには、 TEMPORARYを使用します オプション:

DROP TEMPORARY TABLE IF EXISTS table4;

文字列に基づいてテーブルを削除する方法

MySQLには、文字列に一致するテーブルを削除するための組み込みコマンドがありません。代わりに、スクリプトを使用してこのタスクを実行してください。

1.フィルタリングするデータベースと文字列を定義します。

set @schema = 'tableselection';
set @string = 'table%';

tableselectionを置き換えます データベースの名前で。 table%を置き換えます 選択および削除する文字列を使用します。必ず%を残してください 最後にワイルドカード。

2.文字列に一致するすべてのテーブルを選択するMySQLステートメントを作成します。

SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;

このコードは、 table%を持つすべてのテーブルを選択します information_schemaから指定された文字 テーブル。次に、それらを連結して、 DROPを実行します。 グループに対する声明。

3.このコードの結果から選択を作成します:

SELECT @droptool;

4.コマンドの内容を表示します:

PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

以下のセクションのコードは、使いやすさのために全体が示されています。

set @schema = 'tableselection';
set @string = 'table%';
 
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
 
SELECT @droptool;
 
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Cent OS
  1. データベース間でMySQLテーブルをコピーする方法

  2. MySQLでテーブルを削除する

  3. CentOS 6.x に MySQL 5.6 をインストールする方法

  1. WorkbenchでMySQLデータベースを作成する方法

  2. MySQLでテーブルを作成する方法

  3. 破損したMysqlデータベーステーブルを修復する方法

  1. MySQLデータベースを修復する方法

  2. Ubuntu18.04にMySQL8.0をインストールする方法

  3. CentOS7にMySQLをインストールする方法