如何删除数据库中的所有表?

时间:2010-09-18 13:56:21

标签: mysql

如何删除数据库中的所有表?

1)在一个MYSQL命令中

2)不破坏和创建数据库?

由于

3 个答案:

答案 0 :(得分:6)

尝试这样的事情:

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

整洁的小技巧,它对我有用。

最初建议here

答案 1 :(得分:0)

试试这个:

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;

来自here。它说,快速而肮脏。它当然很脏。 ; - )

答案 2 :(得分:0)

这是一个示例,但它适用于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