我有一个名为Database1的数据库,其中包含40个表格。现在我想要删除这40个表格中的所有数据。我知道可以使用以下方法来显示该数据库中的所有表格:
SELECT table_name
FROM INFORMATION_SCHEMA.tables
WHERE table_schema = 'Database1';
如何使用单个查询从Database1中删除所有表的数据?
注意:
我只想删除数据,而不是表。
我正在使用mysql workbench 6.0
我有一个名为Database1的数据库,其中包含40个表格。现在我想要删除这40个表格中的所有数据。我知道可以使用以下方法来显示该数据库中的所有表格:
SELECT table_name
FROM INFORMATION_SCHEMA.tables
WHERE table_schema = 'Database1';
如何使用单个查询从Database1中删除所有表的数据?
注意:
我只想删除数据,而不是表。
我正在使用mysql workbench 6.0
mysqldump -d -uuser -ppass --add-drop-table yourdatabasename > yourdatabasename.sql
mysql -uuser -ppass yourdatabasename < yourdatabasename.sql
mysql -Nse 'show tables' yourdatabasename | while read table; do mysql -e "truncate table $yourtable" yourdatabasename; done
$table
应该真正地被引用和转义(它可能包含在未引用标识符中无效的字符)”。我认为使用mysqldump的答案更安全。 - eggyal您可以在服务器控制台上执行以下命令。
mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "truncate table $table"; done
你也可以通过任何图形界面工具(如sqlyog)按以下步骤执行:
right click on database1 > choose more database options > truncate database
第三个选项是按照以下结构备份和恢复-
mysqldump -R -d -uroot -proot123 database1 | mysql -uroot -proot123 database1
如果您使用存储过程/函数,始终使用-R,否则您将失去它。
享受...
$table
应该被引用和转义(它可能包含在未引用标识符中无效的字符)。我发现 @Rahul 的答案使用 mysqldump 更安全。 - eggyal--add-drop-table
选项,而您没有这样做,因此实际上您的版本将由于表已经存在而失败)。 - eggyal针对Oracle数据库: 如果您想删除所有表中的所有记录而不删除表,请查看以下链接,它可能会帮助您 https://dba.stackexchange.com/questions/74519/delete-all-the-data-from-all-tables
您可以尝试以下任何一种方法: 从MYSQL中删除所有表中的数据