我正在讨论是否尝试遍历表列表并使用存储过程将其截断。MySql会那么容易,我将如何做呢?
您需要的主要信息是表列表。大多数平台都支持:
select table_name from information_schema.tables
但是,在对存储过程进行编码之前,请从information_schema.tables中执行select *并检查条目,可能会有一些您不希望看到的东西- 系统表等,因此您可能需要制作过滤器以获取所需的集合。
由于我没有做太多的mySQL,因此无法向您显示代码,但是如果您可以从MS SQL进行翻译,并填写一些空白,则可以使其工作:
declare @table_name varchar(200) while 1=1 begin select top 1 @table_name = table_name from information_schema.tables where ....possible filter... if @table_name is null break -- for this line you may need dynamic sql truncate table @table_name end