2010-12-15 166 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