2011-02-07 2 views
69

1つのコマンドで1つのデータベースから複数のテーブルを削除する方法。 何かのような、A、B、Cデータベース試験の表であるmysqlでワンショットで複数のテーブルをドロップする

> use test; 
> drop table a,b,c; 

+11

あなたはすでににその名を追加する所望の各テーブルをクリックし、HeidiSQLにあなたは自分の名前(上のテキストボックス)でテーブルをフィルタリングすることができ、以下の回答に応じて自分自身を – ajreal

+0

答えるクエリに 'DROP TABLEを'書いて、ダブルクエリ(それらの間にコンマを入れます)を実行し、F9を押して実行します。少し話題は出てきましたが、私はここに来ました。 –

答えて

87

例:

はのは、2人の子供BとCを持つテーブルAはその後、我々はすべてのテーブルを削除するには、次の構文を使用することができましょう。

DROP TABLE IF EXISTS B,C,A; 

これは、各テーブルを個別に削除するのではなく、スクリプトの先頭に配置することができます。

+20

テーブルが全く関係を持つ必要はないことを指摘する価値はあるかもしれません。これらは完全に独立していても構いません。 – crmpicco

56
SET foreign_key_checks = 0; 
DROP TABLE IF EXISTS a,b,c; 
SET foreign_key_checks = 1; 

次に、それらを正しい順序で削除したり、実際に存在するかどうかを心配する必要はありません。

+2

あなたはfkeyのチェック(y)の回しで多くの面倒から私を救った。 – HungryCoder

+0

男、その仕事に感謝します。 – sradha

-2
declare @sql1 nvarchar(max) 
SELECT @sql1 = 
    STUFF(
     (
      select ' drop table dbo.[' + name + ']' 

      FROM sys.sysobjects AS sobjects 
      WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%') 
      for xml path('') 
     ), 
    1, 1, '') 

    execute sp_executesql @sql1 
関連する問題