2011-02-07 2 views
69

Как удалить несколько таблиц из одной базы данных по одной команде. что-то подобное,Удаление нескольких таблиц одним выстрелом в mysql

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

где а, Ь, с таблицей из теста базы данных.

+11

вы уже ответить себе – ajreal

+0

в соответствии с приведенными ниже ответами, в HeidiSQL вы можете фильтровать таблицы по их имени (верхнее текстовое поле), писать 'DROP TABLE' в запрос и дважды щелкните каждую нужную таблицу, чтобы добавить свое имя запрос (поместите запятую между ними), затем нажмите F9 для выполнения. Немного не по теме, но я пришел сюда для этого. –

ответ

87

Пример:

Скажем, таблица А имеет двух детей В и С. Тогда мы можем использовать следующий синтаксис для удаления всех таблиц.

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 
Смежные вопросы