2010-02-03 18 views
15

Nie chcę spadać bazy danychJak upuścić całą tabelę w MySQL?

bo nie jestem gospodarzem strony internetowej, na własnym komputerze,

spadek baza danych będzie wymagać utworzyć go ponownie, a wiele ustawień.

Czy istnieje w MySQL polecenie, które może być użyte do usunięcia wszystkich tabel w określonej bazie danych?

EDIT

Wszystko co mogę zrobić to w phpMyAdmin

Odpowiedz

5

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

Here istnieje więcej sposobów, aby odrzucać wszystkie tabele bez pomijania bazy danych.

+0

Jak korzystać ze skryptu, kiedy ten błąd: Nie można usunąć lub zaktualizować wiersz nadrzędny: klucz obcy zawiedzie – user2298943

+0

@ user2298943 Użyj tego: 'mysqldump -u [LOGIN] -p [hasło] - add-drop-table --no-data [BAZA DANYCH] | grep -e '^ DROP \ | FOREIGN_KEY_CHECKS "| mysql -u [USERNAME] -p [HASŁO] [BAZA DANYCH] ' – kiLLua

1

Nie jestem świadomy niczego bezpośrednio, aby spełnić Twoje potrzeby. Można spróbować wykonać następujące czynności:

Run to, aby pokazać swoją kroplę poleceń:

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


Nex można to zrobić, aby właściwie wykonać spadek poleceń:

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

można również wygenerować plik sql z bazy danych information_schema:

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

To da wyjście jak:

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

Mówiłeś o zrobieniu tego w phpMyAdmin.

Po prostu musiałem to zrobić i nie jestem pewien, jakiej wersji używasz, ale w wersji, którą mam, jeśli przewiń do dolnej części listy tabel, możesz kliknąć "Sprawdź wszystko", a następnie w menu rozwijanym obok tego, który ma "Z Wybranym:", możesz wybrać "Upuść" i opróżnia wszystkie tabele.

+4

To jest aktualna odpowiedź na to pytanie. –

+0

To działa! Ale wyłączam weryfikację klucza obcego, aby usunąć wszystkie tabele! –

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]); 
} 

to działa dla mnie!

Powiązane problemy