繁体   English   中英

存储过程MYSQL错误

[英]Stored procedure MYSQL error

通过PHPMyAdmin运行以下过程时遇到一些问题,收到错误;

“ 1064-您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获取在第6行的''附近使用的正确语法”

问题似乎出在IF上,更新语法本身起作用,if语句中的select本身起作用。

有任何想法吗??

CREATE PROCEDURE Get_SessionCookie(
sessionID varchar(50),
cookieID varchar(50)
)

IF (SELECT 1 = 1 FROM `SessionCookie` WHERE SessionID = sessionID AND CookieID = cookieID AND SessionExpiry <  NOW())

UPDATE SessionCookie
SET SessionExpiry = NOW() + INTERVAL 60 MINUTE
WHERE SessionID = sessionID AND CookieID = cookieID;

SELECT 'True' FROM SessionCookie;

ELSE

SELECT 'False' FROM SessionCookie;

一个主要问题是存储过程的参数与列具有相同的名称。 您应该始终在变量名前加上一些前缀。 我认为,您的特定问题是您希望ifdelimeter语句中exists一个。 我认为这更接近您想要的:

delimiter $$

CREATE PROCEDURE Get_SessionCookie (
    var_sessionID varchar(50),
    var_cookieID varchar(50)
)
BEGIN
    IF exists (SELECT 1
               FROM `SessionCookie`
                WHERE SessionID = var_sessionID AND
                      CookieID = var_cookieID AND
                      SessionExpiry <  NOW()
              )

        UPDATE SessionCookie
            SET SessionExpiry = NOW() + INTERVAL 60 MINUTE
            WHERE SessionID = var_sessionID AND CookieID = var_cookieID;

        SELECT 'True' FROM SessionCookie;

    ELSE SELECT 'False' FROM SessionCookie;
    END IF
END$$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM