首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的sql查询不像设置正确的分隔符那样运行?

为什么我的sql查询不像设置正确的分隔符那样运行?
EN

Stack Overflow用户
提问于 2016-01-07 10:18:08
回答 1查看 41关注 0票数 0
代码语言:javascript
复制
DELIMITER $$
ALTER PROCEDURE GetUContent(IN CurPage INT,IN PageRows INT)
BEGIN 
    DECLARE @rownum INT DEFAULT 0; 
    SELECT  @rownum:=@rownum+1 as T_ROWID,
            tcl.T_ID AS T_CID ,
            tcl.T_CONTENTS , 
            tcl.T_TYPE ,
            tcl.T_STATUS , 
            tcl.T_GOAL , 
            tcl.T_IMGURL AS T_CIMGURL , 
            tcl.T_CREATETIME ,
            tul.T_ID AS T_UID , 
            tul.T_NAME , 
            tul.T_IMGURL AS T_UIMGURL ,
            IFNULL(trl.T_RCOUNT, 0) AS T_RCOUNT 
            FROM  T_CONTENT  tcl LEFT JOIN 
            ( SELECT   T_CID , COUNT(T_ID) AS T_RCOUNT 
              FROM    T_REPLAY  WHERE   T_STATUS = 1  GROUP BY T_CID
            ) trl ON tcl.T_ID = trl.T_CID
             INNER JOIN  T_USERINFO tul ON tcl.T_UID = tul.T_ID
            WHERE     tcl.T_STATUS = 1
     ORDER BY tcl.T_CREATETIME LIMIT PageRows*CurPage,PageRows;
END $$
DELIMITER ;
  • 错误信息:文件中第2行的错误1064 (42000):'/root/git/Thinking/src/main/resources/dataScript.sql':您的SQL语法出现了错误;检查与MariaDB服务器版本对应的手册,以获得在“CurPage INT,IN PageRows INT”附近使用的正确语法,开始声明@rownum默认值0;在第1行选择

必须提供信息:

  1. 我使用默认的mysql客户端。
  2. 运行指挥部:。/root/git/Thinking/src/main/resources/dataScript.sql
  3. dataScipt.sql的内容是上层编码。
EN

回答 1

Stack Overflow用户

发布于 2016-01-07 10:21:34

我觉得你需要用

代码语言:javascript
复制
DECLARE rownum INT DEFAULT 0; 
SELECT  rownum=rownum+1 as T_ROWID,
...

因为@...变量是不能与DECLARE一起使用的会话变量。

编辑

ALTER PROCEDURE 不支持更改方法体。 in MariaDB:

但是,不能使用此语句更改存储过程的参数或正文;要进行此类更改,必须使用drop过程和CREATE过程删除并重新创建过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34652564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档