ドロップテーブル
このステートメントは、現在選択されているデータベースからテーブルを削除します。 IF EXISTS
修飾子が使用されていない限り、テーブルが存在しない場合はエラーが返されます。
あらすじ
- DropTableStmt
- OptTemporary
- TableOrTables
- TableNameList
DropTableStmt ::=
'DROP' OptTemporary TableOrTables IfExists TableNameList RestrictOrCascadeOpt
OptTemporary ::=
( 'TEMPORARY' | ('GLOBAL' 'TEMPORARY') )?
TableOrTables ::=
'TABLE'
| 'TABLES'
TableNameList ::=
TableName ( ',' TableName )*
一時テーブルを削除する
次の構文を使用して、通常のテーブルと一時テーブルを削除できます。
- ローカル一時テーブルを削除するには、
DROP TEMPORARY TABLE
を使用します。 - グローバル一時テーブルを削除するには、
DROP GLOBAL TEMPORARY TABLE
を使用します。 - 通常のテーブルまたは一時テーブルを削除するには、
DROP TABLE
を使用します。
例
mysql> CREATE TABLE t1 (a INT);
Query OK, 0 rows affected (0.11 sec)
mysql> DROP TABLE t1;
Query OK, 0 rows affected (0.22 sec)
mysql> DROP TABLE table_not_exists;
ERROR 1051 (42S02): Unknown table 'test.table_not_exists'
mysql> DROP TABLE IF EXISTS table_not_exists;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE VIEW v1 AS SELECT 1;
Query OK, 0 rows affected (0.10 sec)
mysql> DROP TABLE v1;
Query OK, 0 rows affected (0.23 sec)
MySQL の互換性
- 存在しないテーブルを削除しようとしても、
IF EXISTS
を指定してテーブルを削除しても警告は返されません。 問題#7867 - 現在、
RESTRICT
とCASCADE
は構文的にのみサポートされています。