Бросить несколько столов за один выстрел в MySQL - PullRequest
90 голосов
/ 07 февраля 2011

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

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

где a, b, c - таблицы из теста базы данных.

Ответы [ 3 ]

115 голосов
/ 07 февраля 2011

Пример:

Допустим, у таблицы A есть два дочерних элемента B и C. Затем мы можем использовать следующий синтаксис для удаления всех таблиц.

DROP TABLE IF EXISTS B,C,A;

Это может быть помещено в начало сценария вместо того, чтобы отдельно отбрасывать каждую таблицу.

67 голосов
/ 07 февраля 2011
SET foreign_key_checks = 0;
DROP TABLE IF EXISTS a,b,c;
SET foreign_key_checks = 1;

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

N.B. это только для MySQL (как в вопросе). Другие базы данных, вероятно, имеют другие методы для этого.

0 голосов
/ 29 сентября 2016
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
...