MySQLのデータベースからテーブルを削除する必要がある場合があります。これは、MySQLDROPTABLEコマンドを使用して簡単に行うことができます。 MySQLでテーブルを削除する方法は次のとおりです。
MySQLでテーブルを削除する方法
MySQLでテーブルを削除する手順は次のとおりです。 MySQL DROP TABLEステートメントを使用して、データベース内の既存のテーブルを削除します。
DROPTABLEステートメントの構文は次のとおりです。
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] ... [RESTRICT | CASCADE]
DROP TABLEステートメントは、1つ以上のデータベーステーブルを削除するために使用できます。
TEMPORARYキーワードは、一時テーブルのみを削除し、非一時テーブルの削除を防ぎます。
IF EXISTSキーワードは、テーブルが存在する場合にのみテーブルを削除します。
MySQLテーブルを削除できるようにするには、DROPTABLE権限が必要であることに注意してください。
ボーナスリード:MySQLで今日からレコードを取得する方法
単一のテーブルを削除するMySQLDROPTABLE
次の表があるとします。
mysql> create table orders(order_date date, sale int);
このテーブルを削除するためのMySQLDROPTABLEステートメントは次のとおりです。
mysql> DROP TABLE orders;
存在しないテーブルを削除しようとすると、警告が表示されます:
mysql> drop table orders; ERROR 1051 (42S02): Unknown table 'sample.orders'
ボーナスリード:MySQLの各グループで最初のレコードを取得する方法
MySQL複数のテーブルを削除
同じデータベースに複数のテーブルtable1、table2、table3がある場合、それらを削除するためのMySQLDROPTABLEステートメントは次のとおりです
mysql> DROP TABLE table1, table2, table3;
ボーナスリード:MySQLビューを作成する方法
MySQLDROPTABLEマッチングパターン
複数のデータベーステーブルがあり、「order」などの特定のパターンに一致するテーブルを削除する場合は、MySQLDROPTABLEステートメントを直接使用することはできません。たとえば、次のコマンドは機能しません。
mysql> DROP TABLE like 'order%';
したがって、回避策を使用する必要があります。データベースにorders1、orders2、order3のテーブルがあるとします。
mysql> create table orders1(order_date date, sale int); mysql> create table orders2(order_date date, sale int); mysql> create table orders3(order_date date, sale int);
まず、テーブル名を含む動的SQLクエリ文字列を作成します
SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database() AND table_name LIKE @pattern;
上記のクエリは、データベース@schema(サンプルなど)内のすべてのテーブル名のリストを含むinformation_schemaテーブルから必要なパターン@pattern(例:order%)に一致するテーブル名をフェッチし、それらを「DROPTABLE」と連結するようにMySQLに指示します。 。 GROUP_CONCATを使用して、テーブル名のコンマ区切りリストを作成します。
このクエリは@droplike変数に格納されます。
次に、@ pattern変数と@schema変数に値を設定し、@droplike変数から作成されたプリペアドステートメントを実行します。
mysql> SET @schema = 'sample'; mysql> SET @pattern = 'order%'; mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database() AND table_name LIKE @pattern; mysql> select @droplike; +-------------------------------------------------------------+ | @droplike | +-------------------------------------------------------------+ | DROP TABLE sample.orders1,sample.orders2,sample.orders3; | +-------------------------------------------------------------+ PREPARE stmt FROM @droplike; EXECUTE stmt; DEALLOCATE PREPARE stmt;
MySQLDROPすべてのテーブル
同様に、データベース内のすべてのテーブルを削除できます。 AND table_name LIKE @patternを削除するだけです 上記の@droplikeのselectステートメントから
SET @schema = 'sample'; SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database();
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。