Jak mogę usunąć wszystkie tabele z mojej bazy danych?Jak mogę usunąć wszystkie tabele z mojej bazy danych?
1) W poleceniu jeden MYSQL
2) bez niszczenia i tworzenia bazy danych?
Dzięki
Jak mogę usunąć wszystkie tabele z mojej bazy danych?Jak mogę usunąć wszystkie tabele z mojej bazy danych?
1) W poleceniu jeden MYSQL
2) bez niszczenia i tworzenia bazy danych?
Dzięki
spróbować czegoś takiego:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Neat mały trick, a to działa na mnie.
Pierwotnie sugerowany here.
Spróbuj tego:
SELECT name INTO #tables from sys.objects where type = 'U'
while (SELECT count(1) FROM #tables) > 0
begin
declare @sql varchar(max)
declare @tbl varchar(255)
SELECT top 1 @tbl = name FROM #tables
SET @sql = 'drop table ' + @tbl
exec(@sql)
DELETE FROM #tables where name = @tbl
end
DROP TABLE #tables;
Got to od here. Szybkie i brudne, mówi. Z pewnością jest brudny. ;-)
Tutaj przykład, ale jest to dla MS SQL Server:
USE myBD -- user DB
DECLARE tables_cursor CURSOR
FOR SELECT name FROM sys.objects WHERE type = 'U' --carefull here
OPEN tables_cursor
DECLARE @tablename sysname
FETCH NEXT FROM tables_cursor INTO @tablename
WHILE (@@FETCH_STATUS != -1)
BEGIN
EXEC ('DROP TABLE ' + @tablename)
FETCH NEXT FROM tables_cursor INTO @tablename
END
DEALLOCATE tables_cursor
Zauważ, że to ma być uruchamiane z linii poleceń systemu, a nie jako oświadczenie MySQL. – Mchl
Mogę tylko uruchamiać instrukcje mysql, więc domyślam się, że to nie działa – aneuryzm