如何发现MySQL存储过程中的问题?
我有以下存储过程:如何发现MySQL存储过程中的问题?,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我有以下存储过程: DELIMITER $$ CREATE DEFINER=`195414_py82740`@`%` PROCEDURE `getUserMail`(inUserId INT) BEGIN DECLARE done INT default 0; DECLARE tmpMailId INT default -1; DECLARE tmpFromUserId INT default -1; DECLARE cursor1 cursor for s
DELIMITER $$
CREATE DEFINER=`195414_py82740`@`%` PROCEDURE `getUserMail`(inUserId INT)
BEGIN
DECLARE done INT default 0;
DECLARE tmpMailId INT default -1;
DECLARE tmpFromUserId INT default -1;
DECLARE cursor1 cursor for select id from mail WHERE toUserId=inUserId OR fromUserId=inUserId ORDER BY sentDate desc;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
DROP TEMPORARY TABLE IF EXISTS temp_userMail;
CREATE TEMPORARY TABLE temp_userMail LIKE mail;
OPEN cursor1;
REPEAT
FETCH cursor1 INTO tmpMailId;
SET tmpFromUserId = IF ((SELECT fromUserId FROM mail WHERE id=tmpMailId)=inUserId, (SELECT toUserId FROM mail WHERE id=tmpMailId), (SELECT fromUserId FROM mail WHERE id=tmpMailId));
IF EXISTS(SELECT id FROM temp_userMail WHERE fromUserId=tmpFromUserId || toUserId=tmpFromUserId) THEN
SET tmpMailId = 0;
ELSE
INSERT INTO temp_userMail
(`id`,
`fromUserId`,
`toUserId`,
`sentDate`,
`readDate`,
`message`,
`fromUserNickName`,
`toUserNickName`,
`subject`,
`fromUserDeleted`,
`toUserDeleted`)
SELECT
(m1.id,
m1.fromUserId,
m1.toUserId,
m1.sentDate,
m1.readDate,
m1.message,
m1.fromUserNickName,
m1.toUserNickName,
m1.subject,
m1.fromUserDeleted,
m1.toUserDeleted)
FROM mail m1
WHERE m1.id=tmpMailId;
END IF;
UNTIL(done = 1)
END REPEAT;
CLOSE cursor1;
SELECT * FROM temp_userMail ORDER BY sentDate DESC;
END
SP已成功保存,但在运行它时,我得到了一个神秘的异常
错误代码:1241:操作数应包含1列
我知道错误的意思,但没有第nr行,因此我不知道在哪里查找问题?从选择子查询中删除括号 不用
SELECT (id, ... m1.toUserDeleted) ...
使用
如果在设置之后打印tmpFromUserID,它会显示什么?我不习惯在MySQL工作台中工作,那么我该怎么做?有没有办法调试SP?抱歉,我使用Management Studio;我也不知道MySQL工作台。
SELECT id, ... m1.toUserDeleted ...