在使用存储过程时,我需要帮助/指导 [英] I need assistance/direction on working with stored procedures

查看:79
本文介绍了在使用存储过程时,我需要帮助/指导的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新手,我完全迷路了!我正在尝试使用MySQL 5.1创建一个存储过程,但我不知道哪里出了问题.有人可以告诉我这里有什么问题以及解决此问题的正确方法是什么.这是我要做的事的一个示例:

I''m a novice and I''m totally lost! I''m trying to create a stored procedure with MySQL 5.1 and I don''t know where I''m going wrong. Can someone please tell me what''s wrong here and what''s the correct way to approach this. Here''s an example of what I''m trying to do doing:

CREATE PROCEDURE proc_1()
BEGIN
DECLARE counter INT DEFAULT 1;
DECLARE maxRowCount INT;

SELECT COUNT(Column_1) FROM tbl_1 INTO maxRowCount;

WHILE counter < maxRowCount DO
SELECT Column_2 FROM tbl_1 WHERE id_PK = counter INTO @val;
SELECT COUNT(Column_3) FROM tbl_1 WHERE Column_2 = @val INTO @val2;
SELECT COUNT(Column_4) FROM tbl_1 WHERE Column_2 = @val INTO @val3;

UPDATE tbl_2 SET Col_1 = @val, Col_2 = @val2;

SET counter = counter + 1;
END WHILE;
END;

推荐答案

HY
首先

从tbl_1的SELECT Column_2中,id_PK =计数器INTO @val;

您必须声明@val并且INTO在FROM
之前
例如:

从tbl
选择*到#tmpTbl

第二

从tbl_1中选择COUNT(Column_3),在Column_2 = @val INTO @ val2;

您可以说Column_2 = @val,@val是一个表,您可以说IN而不是"="
HY
First

SELECT Column_2 FROM tbl_1 WHERE id_PK = counter INTO @val;

YOU must declare @val and INTO is before FROM

Ex:

SELECT * into #tmpTbl FROM tbl


Second

SELECT COUNT(Column_3) FROM tbl_1 WHERE Column_2 = @val INTO @val2;

You can say Column_2 = @val , @val is a table, you may say IN instead "="


这篇关于在使用存储过程时,我需要帮助/指导的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆