创建一个存储过程来迭代表列表并在MySQL中截断它们

时间:2011-01-28 00:32:08

标签: sql mysql stored-procedures

我在讨论是否尝试运行表列表并使用存储过程截断它们。使用MySql会如此简单吗?我该怎么做?

1 个答案:

答案 0 :(得分:1)

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

select table_name from information_schema.tables

但是,在编写sproc代码之前,请先从information_schema.tables中选择*并检查条目,可能会有一些你不期望的 - 系统表等,所以你可能需要设计一个过滤器来获取设定你想要的。

由于我没有那么多我的SQL,我无法向您展示代码,但如果您可以从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