2011-02-07 12 views
69

Come rilasciare più tabelle da un singolo database con un solo comando. qualcosa di simile,Rilasciare più tabelle in uno scatto in mysql

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

dove a, b, c sono i tavoli da database test.

+11

già rispondere da soli – ajreal

+0

secondo le risposte qui sotto, in HeidiSQL è possibile filtrare le tabelle con il loro nome (testo in alto), scrivere 'DROP TABLE' in una query e fare doppio clic su ogni tabella desiderata per aggiungere il suo nome alla la query (mettere una virgola tra di loro) quindi premere F9 per eseguire. Un po 'fuori tema ma sono venuto qui per quello. –

risposta

87

Esempio:

Diciamo tabella A ha due figli B e C. Poi si può utilizzare la seguente sintassi a cadere tutte le tabelle.

DROP TABLE IF EXISTS B,C,A; 

Questo può essere inserito all'inizio dello script invece di far cadere individualmente ogni tabella.

+20

Forse vale la pena sottolineare che le tabelle non hanno bisogno di avere alcuna relazione. Possono essere completamente indipendenti e questa sintassi funzionerà ancora. – crmpicco

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

Quindi non devi preoccuparti di lasciarli nell'ordine corretto, né se effettivamente esistano.

+2

Mi hai salvato da un sacco di problemi girando i controlli fkey (y). – HungryCoder

+0

grazie amico, sta funzionando. – 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 
Problemi correlati