小编典典

创建一个存储过程以遍历表列表并在MySQL中截断它们

sql

我正在讨论是否尝试遍历表列表并使用存储过程将其截断。MySql会那么容易,我将如何做呢?


阅读 173

收藏
2021-04-22

共1个答案

小编典典

您需要的主要信息是表列表。大多数平台都支持:

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
2021-04-22