2012-02-27 54 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