带limit和一个输出参数的存储过程如下:
功能:往表runtimestat 中插入由limit指定行的数据DELIMITER //
DROP PROCEDURE IF EXISTS p_insertruntimerp //
CREATE PROCEDURE p_insertruntimerp(
IN runtimestat VARCHAR(64),
IN runtime VARCHAR(64),
IN processlib VARCHAR(64),
IN rowbeg INT,
IN rowcount INT,
INOUT nret INT
)
BEGIN
DECLARE qweqwe INT;
START TRANSACTION;
SET qweqwe = -1;
SET @insertnosql = CONCAT('INSERT INTO ', runtimestat ,' (MID, TIME, software_type, run_time)
SELECT softrt.mid AS smid, softrt.time AS stime, prolib.type AS pid,
softrt.run_time AS sruntime
FROM ', runtime ,' softrt JOIN ',
processlib,' prolib ON prolib.process_name = softrt.process_name
LIMIT ', rowbeg, rowcount,' ;');
PREPARE insetnosql_stmt FROM @insertnosql;
EXECUTE insetnosql_stmt;
SET qweqwe = ROW_COUNT();
IF qweqwe < 0 THEN
ROLLBACK;
ELSE
nret = qweqwe ;
END IF;
DEALLOCATE PREPARE insetnosql_stmt;
COMMIT;
END //
DELIMITER ;调用如下:
CALL p_insertruntimerp('software_runtime_stat_2011_08','software_runtime_2011_08','process_lib', 4, 100000, @outValue)
第一次执行语句SELECT @outValue;时可以得到一个正确的值,
当表中数据增加时,每次执行语句SELECT @outValue;得到的值在增长,
但当数据再减少时,执行语句SELECT @outValue;得到的值还是以前的大值,这是为什么?
我该如何清空变量qweqwe以前的值?
我要的是每次当前的值,该怎么做?
谢谢!
解决方案 »
- mysql+jsp为什么总是说用户名或密码错误?
- 一个简单SQL查询
- 那位高手来给我解决一下【没有什么分,只是希望大家能从技术的角度帮我】
- Cannot add or update a child row: a foreign key constraint fails (`myznt/answer`, CONSTRAINT `answer_ibfk_1` FOREIGN KEY (`qid`
- 查询mysql中不同表中内容的命令如何写
- 数据插入效率讨论
- phpmyadmin2.8.2 无法显示数据表?
- 请教一条sql语句,这样写对吗?
- 不知道Mysql是不是支持Sql的嵌套查询!
- 如何配置MYSQL数据源
- 数据重复插入问题
- 求MYSQL多表联合查询方案
如何设置?