【问题标题】:MySQL how do you truncate a table in a stored procedure?MySQL如何截断存储过程中的表?
【发布时间】:2012-03-17 05:50:38
【问题描述】:

我有一个将结果写入 Result 表的存储过程。如何从存储过程中截断/删除表?

例子

call peformTest()

truncate TestResultTable;

//do stuff with new data to insert into TestResultTable
end

【问题讨论】:

  • 请阅读本文的任何人注意:不能在 DECLARE 之前调用“TRUNCATE”。那是我的问题

标签: mysql sql stored-procedures truncate


【解决方案1】:

如果你想从表中删除所有数据,那么你的语法是正确的:

truncate testResultTable;

truncate table testResultTable;

根据您的具体需求,如果您需要正确摆脱表然后重新创建它,您可以这样做:

drop table testResultTable;
create table testResultTable as select ... from ... where ...

【讨论】:

  • 请阅读本文的任何人注意:不能在 DECLARE 之前调用“TRUNCATE”。那是我的问题
【解决方案2】:

不确定 SQL 与存储过程在执行方式上是否有任何区别。但通常截断的格式是:Truncate Table tableName; 这里是参考:http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html

【讨论】:

    【解决方案3】:

    在简单的存储过程中:

    从表中删除 1 = 1


    PL/SQL 中的其他示例:

    PL/SQL SP Truncate


    或@Churk 的解决方案。

    【讨论】:

    • 那是 Oracle 解决方案,而不是 MySQL 解决方案。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多