+ -
当前位置:首页 → 问答吧 → help,mysql存储过程问题

help,mysql存储过程问题

时间:2011-12-16

来源:互联网

SQL code

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(
        IN id BIGINT(20),
        IN newSize int(20),
        IN newConut int(20),
        IN newPrice FLOAT(8,4)
    )
BEGIN
 DECLARE Size INT;
 DECLARE Count INT;
 DECLARE Price FLOAT;
set @q1=CONCAT('select size,count,price INTO Size,Count,Price from ',id,'_testschema.testtable where datetime BETWEEN "',CURDATE(),' 00:00:00" and "',CURDATE(),' 23:59:59"');
prepare st1 from @q1;
deallocate prepare st1;
..
..
..
..
end
[code=SQL]
[/code]
存储过程如上,主要是先定义三个变量,然后将sql语句用concat生成,由于需要操作的数据是在另一个数据库中的,故该存储过程还接收数据库名字作为参数,现在这样写之后提示我Size变量未定义

作者: magic_zj00   发布时间: 2011-12-16

set @q1=CONCAT('select size,count,price INTO @Size,@Count,@Price from ',id,'_testschema.testtable where datetime BETWEEN "',CURDATE(),' 00:00:00" and "',CURDATE(),' 23:59:59"');
prepare st1 from @q1;
deallocate prepare st1;

作者: wwwwb   发布时间: 2011-12-16