Mysql - 如何清除单个数据库中所有表的所有数据

时间:2015-09-23 12:16:12

标签: mysql

我有一个名为 Database1 的数据库,此数据库有 40个表。现在我要删除40个表中的所有数据。我知道要使用

显示来自DB的所有表
SELECT table_name 
FROM INFORMATION_SCHEMA.tables 
WHERE table_schema = 'Database1';

那么如何使用单个查询从 Database1 中删除所有表格中的所有数据?

注意:

我应该只删除数据,而不是表格。

我正在使用mysql workbench 6.0

3 个答案:

答案 0 :(得分:3)

你可以试试这个:

mysqldump -d -uuser -ppass --add-drop-table yourdatabasename > yourdatabasename.sql
mysql -uuser -ppass yourdatabasename < yourdatabasename.sql

正如Zafar所指出的,如果你想包含存储过程/函数,那么你可以包含-R选项。

或者您可以尝试

mysql -Nse 'show tables' yourdatabasename | while read table; do mysql -e "truncate table $yourtable" yourdatabasename; done

答案 1 :(得分:0)

您可以在服务器控制台上执行以下命令。

mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "truncate table $table"; done

你也可以通过以下步骤通过任何类似sqlyog的gui来实现 -

right click on database1 > choose more database options > truncate database

第三个选项是结构备份和恢复,如下所示 -

mysqldump -R -d -uroot -proot123 database1 | mysql -uroot -proot123 database1

注意:Always use -R if you are using stored procedures/function other wise you loose it.

...享受

答案 2 :(得分:0)

对于Oracle: 如果你想删除所有表的所有记录而不删除表应该看看,它可能会对你有所帮助 https://dba.stackexchange.com/questions/74519/delete-all-the-data-from-all-tables

您可以尝试以下任何一项: Delete data from all tables in MYSQL

How to empty all rows from all tables in mysql (in sql)