【发布时间】:2017-01-17 13:48:00
【问题描述】:
我有一个 MySQL 存储过程,它当前创建了一个名为“prod_temp”的表,并用源表中的行填充它。
我希望存储过程循环遍历此“prod_temp”表的所有结果并更新其中一列 - 其值与源表中的值相同 + 1。到目前为止,我有以下。
DELIMITER //
DROP PROCEDURE IF EXISTS MyProcedure;
CREATE PROCEDURE MyProcedure(IN s_region INT)
BEGIN
DROP TABLE IF EXISTS prod_temp;
CREATE TEMPORARY TABLE prod_temp SELECT * FROM prod WHERE FIND_IN_SET(s_region, regions);
// select * from prod_temp
// for each prod_temp row
// select max(prod_id) from prod where ref = this row.ref
// update this row, set prod_id = selected max(prod_id) + 1
// end loop
END //
DELIMITER ;
CALL MyProcedure(50);
有人可以填空吗?提前致谢
【问题讨论】:
-
对我来说不够详细,能否提供示例数据和预期结果。
标签: mysql loops stored-procedures