执行变量中存在的mysql查询

时间:2012-04-12 11:40:18

标签: mysql sql database

我有一个MySQL变量

@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');

我想执行变量中的insert语句。

3 个答案:

答案 0 :(得分:15)

您必须先使用PREPARE准备语句,然后使用EXECUTE

见这里:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

类似的东西:

SET @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");

PREPARE stmt1 FROM @query; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 

答案 1 :(得分:2)

Set @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");

然后

PREPARE stmt_name FROM @query

最后

EXECUTE stmt_name

答案 2 :(得分:-2)

删除CONCAT(),除了生成错误之外它没有做任何事情,因为它试图连接一个字符串而没有别的。