2012-02-27 58 views
1

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

例如

call peformTest() 

truncate TestResultTable; 

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

请注意读取此内容的任何人:'TRUNCATE'不能在DECLARE之前调用。那是我的问题 – stackoverflow 2012-02-28 18:27:51

回答

2

如果你想从表中删除所有数据,那么你的语法是正确的:根据您的具体需求

truncate testResultTable; 

truncate table testResultTable; 

,如果你需要摆脱的表,然后重新创建它,你可以这样做:

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

请注意读取此内容的任何人:'DECLARE'之前不能调用'TRUNCATE'。那是我的问题 – stackoverflow 2012-03-02 00:41:40

0

在存储过程简单:

DELETE FROM表WHERE 1 = 1


在PL/SQL其他例子:

PL/SQL SP Truncate


或者@Churk的解决方案。

+0

这是一个Oracle解决方案,而不是MySQL解决方案。 – 2012-02-27 20:14:30

+0

是的,但它可以提供一些“哲学”信息。 – 2012-02-27 20:28:48