[英]MySQL - Stored Procedures syntax issue
CREATE PROCEDURE `usp_GetUserValidation`
(IN `@Username` VARCHAR(255),
IN `@Password` VARCHAR(50),
OUT `@ErrorCode` INT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'To validate user login'
BEGIN
IF EXISTS
(SELECT UserID
FROM mt_User
WHERE Username = `@Username`
AND Password = PASSWORD(`@Password`))
BEGIN
SET `@ErrorCode` = 0;
END
ELSE
SET `@ErrorCode` = 1;
SELECT '@ErrorCode' AS res
END
嗨,大家好。 我是SQL Server用户。 最近,我刚刚开始学习MySQL及其存储过程(例程)的编写。 谁能指出我造成以下错误的错误是什么? 预先谢谢你们:)
1064-您的SQL语法有误; 查看与您的MySQL服务器版本相对应的手册以使用正确的语法
第15行的'BEGIN SET
@ErrorCode
= 0'附近
这可能就是您想要的。 整个内容位于DELIMITER BLOCK中,并且对IF块进行了一些更改(存在一些语法错误)。 注意,它现在保存在我的系统上。
DELIMITER $$
CREATE PROCEDURE `usp_GetUserValidation`
(IN `@Username` VARCHAR(255),
IN `@Password` VARCHAR(50),
OUT `@ErrorCode` INT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'To validate user login'
BEGIN
IF EXISTS
(SELECT UserID
FROM mt_User
WHERE Username = `@Username`
AND Password = PASSWORD(`@Password`)) THEN
SET `@ErrorCode` = 0;
ELSE
SET `@ErrorCode` = 1;
END IF;
SELECT '@ErrorCode' AS res;
END$$
DELIMITER ;
相关: DELIMITER处理什么。
关于IF语法的 MySQL手册页
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.