2011-02-07 9 views
69

Cómo colocar varias tablas desde una sola base de datos con un solo comando. algo como,Caída de varias tablas en una sola toma en mysql

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

donde a, b, c son las tablas de la base de datos de prueba.

+11

ya respuesta por ti mismo – ajreal

+0

acuerdo con las respuestas a continuación, en HeidiSQL que puede filtrar las tablas por su nombre (cuadro de texto superior), escribir 'DROP TABLE' en una consulta y haga doble clic en cada tabla deseada para añadir su nombre a la consulta (ponga una coma entre ellos) luego presione F9 para ejecutar. Un poco fuera de tema, pero vine aquí por eso. –

Respuesta

87

Ejemplo:

Digamos tabla A tiene dos hijos B y C. A continuación, puede utilizar la siguiente sintaxis para colocar todas las tablas.

DROP TABLE IF EXISTS B,C,A; 

Esto se puede colocar al principio del guión en lugar de soltar cada tabla individualmente.

+20

Quizás vale la pena señalar que las tablas no necesitan tener ninguna relación. Pueden ser completamente independientes y esta sintaxis seguirá funcionando. – crmpicco

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

Entonces no tiene que preocuparse por dejarlos en el orden correcto, ni si realmente existen.

+2

Me has salvado de muchos problemas al girar los controles de teclas (y). – HungryCoder

+0

gracias hombre, está funcionando. – 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 
Cuestiones relacionadas