SELECT INTO局部变量未声明?

时间:2012-11-08 02:40:22

标签: mysql sql

我在执行的sql文件中有以下内容......

DECLARE rowcount INT;

SELECT COUNT(*) INTO rowcount
FROM VRG_PROBLEM_ACCOUNT PA 
WHERE NEW.CustName = PA.CustNAME 
AND NEW.AreaCode = PA.AreaCode 
AND NEW.PhoneNumber = PA.PhoneNumber;

然而我正在

ERROR 1327 (42000): Undeclared variable: rowcount

在另一个文件中,我正在使用相同类型的SELECT ... INTO localvariable,它可以工作。

2 个答案:

答案 0 :(得分:4)

局部变量只能在存储的例程中声明。你可以使用@ -variables代替它,它根本不需要声明:

SELECT COUNT(*) INTO @rowcount
FROM ...

答案 1 :(得分:0)

如何重新编写查询?

DECLARE rowcount INT;

SET rowcount = (
    SELECT COUNT(*)
      FROM VRG_PROBLEM_ACCOUNT PA 
     WHERE PA.CustNAME = NEW.CustName
       AND PA.AreaCode = NEW.AreaCode
       AND PA.PhoneNumber = NEW.PhoneNumber);

更新1 *

我不知道您的完整代码,但请注意,DECLARE仅允许在BEGIN ... END复合语句中使用,并且必须在任何其他语句之前开始。