2

我正在执行的 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 并且它可以工作。

4

2 回答 2

4

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

SELECT COUNT(*) INTO @rowcount
FROM ...
于 2012-11-08T02:42:57.450 回答
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复合语句中使用,并且必须在其开头,在任何其他语句之前。

于 2012-11-08T02:48:05.787 回答