2010-12-15 118 views
2

我在MySQL 5.1.40中創建了一個需要運行大量SQL語句的存儲過程。MySQL ::在變量中運行SQL語句

被經常重複的一個特定語句清除臨時表:

DELETE FROM w_projection_temp WHERE user_id = uid; 

UID變量是SP的IN參數。

是否有可能將整個SQL語句分配給另一個變量,然後以某種方式運行(評估?)該新變量?例如:

DECLARE clear_temp VARCHAR; 
SET clear_temp = 'DELETE FROM w_projection_temp WHERE user_id = uid;' 

MTIA

+0

你爲什麼要打這個充滿活力的 - 你這樣做是正確首次 – 2010-12-15 05:10:56

回答

2
PREPARE clear_temp FROM "DELETE FROM w_projection_temp WHERE user_id = ?" 
EXECUTE clear_temp USING uid; 
DEALLOCATE PREPARE clear_temp; 
+0

非常感謝拉維! – maxhugen 2010-12-16 03:05:48