2010-02-03 23 views
15

Non voglio far cadere banca dati,Come eliminare tutta la tabella in MySQL?

perché non sto che ospita il sito web sulla mia macchina,

goccia database richiederà creare di nuovo, e molte impostazioni.

Esiste un comando in MySQL che può essere utilizzato per eliminare tutte le tabelle in un database specifico?

EDIT

Tutto ciò che posso fare è all'interno di un phpMyAdmin

risposta

5

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

Here ci sono più metodi per cadere tutte le tabelle senza far cadere il database.

+0

Come si usa lo script con quando ottengo questo errore: Impossibile eliminare o aggiornare una riga padre: un vincolo di chiave esterna non riesce – user2298943

+0

@ user2298943 usare questo: 'mysqldump -u [nome utente] -p [PASSWORD] - add-drop-table --no-data [DATABASE] | grep -e '^ DROP \ | FOREIGN_KEY_CHECKS '| mysql -u [USERNAME] -p [PASSWORD] [DATABASE] ' – kiLLua

1

Non sono a conoscenza di alcunché diretto in base alle proprie esigenze. Si potrebbe provare a fare quanto segue:

Esegui questo per mostrare il vostro goccia comandi:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP 


Nex si può fare questo per eseguire in realtà il calo comandi:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP | 
mysql -u[USERNAME] -p[PASSWORD] [DATABASE] 
3

È inoltre possibile generare un file sql dal database information_schema:

Select concat('DROP TABLE database_name.', table_name,';') from information_schema.TABLES where table_schema='database_name'; 

Questo darà un output come:

DROP TABLE database_name.table1; 
DROP TABLE database_name.table2; 
[...] 
DROP TABLE database_name.tableN; 
27

parlavi di fare questo in phpMyAdmin.

Ho appena dovuto fare questo e non sono sicuro di quale versione si sta utilizzando, ma nella versione che ho se si scorre verso il fondo della lista della tabella è possibile fare clic su "Controlla tutto" e poi nel menu a discesa accanto ad esso che ha "Con selezionato:" è possibile selezionare "Rilascia" e svuota tutte le tabelle.

+4

Questa è la risposta effettiva per questa domanda. –

+0

Funziona! Ma ho disabilitato la verifica della chiave esterna per eliminare tutti i tavoli! –

0
$q=mysql_query("SHOW TABLES FROM ".SQL_DATABASE_NAME); 

while($r=mysql_fetch_assoc($q)){ 
    mysql_query("DROP TABLE ".$r["Tables_in_".SQL_DATABASE_NAME]); 
} 

funziona per me!

Problemi correlati