2017-11-30 10 views
4

私は、MySQLコマンドDROP TABLE Userがデータ、列、および関連する制約を削除するという印象を受けています。ただし、テーブルシェルはまだ存在します。これは正しいです? drop table上のMySQLのマニュアルとしてMySQL: `DROP TABLE`はテーブルまたは構造だけを完全に削除しますか?

+0

テーブルシェルとは何ですか? – Shadow

+1

ドキュメントごと*この文には注意してください!これは、テーブル定義とすべてのテーブルデータを削除します。パーティション表の場合、表定義、そのすべての区画、およびそれらの区画に保管されているすべてのデータが永久に除去されます。また、ドロップされたテーブルに関連付けられたパーティション定義も削除されます* [13.1.29 DROP TABLE構文](https://dev.mysql.com/doc/refman/5.7/en/drop-table.html) –

+0

ああ!だから私はそれが完全にテーブルを削除すると思います。その場合、私は今、同じ名前の新しいテーブルを作成することが可能であるはずですか? 'DROP TABLE user;'に続いて 'CREATE TABLE user(...);'が動作するはずです! – Grateful

答えて

3

DROP TABLEを使用すると、テーブル全体とその内部に含まれるすべてのレコードが削除されます。テーブル構造を保持するがすべてのデータを削除する場合は、TRUNCATE TABLE.を使用することを検討してください。テーブルを切り捨てることは、テーブル全体を削除してから再作成することによって実装されます。これは、レコードを1つずつ削除するDELETE FROM yourTableよりも高速です。

+1

ああ!その情報をありがとうございます! – Grateful

+0

Syは何らかの理由ですべての回答を下落させたようだ。 – Shadow

+0

@Shadowこのサイトの一部の人々は深刻なdownvoteトリガーフィンガーの問題があります。私はそれらの一つではありません: - P –

0

は言う:

はこの文には注意してください!これは、テーブル定義とすべてのテーブルデータを削除します。

したがって、テーブルを削除した後にシェル(それが意味するもの)は残っていません。

+0

ありがとうございました。 – Grateful

0

テーブルシェルとはどういう意味ですか? MqSQL devのサイトから

DROP TABLEは、1つまたは複数のテーブルを削除します。各表にDROP権限が必要です。

Be careful with this statement! It removes the table definition and all table data. For a partitioned table, it permanently removes the table definition, all its partitions, and all data stored in those partitions. It also removes partition definitions associated with the dropped table.

2

Drop Tableした後、テーブルには、もはや存在しませんので、データなしと(あなたが「テーブルシェル」と呼ばれる)がないテーブル定義。 TRUNCATE TABLEテーブル定義を保持してすべてのデータを削除し、テーブルの自動インクリメントもリセットしますが、テーブルサイズが大きい場合はTRUNCATEに注意してください。

+1

ああ!説明をありがとう。私はそれを覚えようとします。 – Grateful

関連する問題