我正在phpMyAdmin中的存储过程下面运行:
DELIMITER //
CREATE PROCEDURE usp_ForgotPassword (
-- Add the parameters for the stored procedure here
p_mobileNo VARCHAR(50),
p_emailId VARCHAR(300),
p_password VARCHAR(300),
p_otp VARCHAR(50),
p_appInstanceCode CHAR(36))
BEGIN
DECLARE v_IsOTPValid TINYINT DEFAULT NULL;
SET v_IsOTPValid = NULL;
DECLARE v_userCode CHAR(36);
IF (v_IsOTPValid = 1)
THEN
IF EXISTS(SELECT * FROM OTP WHERE otp = p_otp AND mobileNo = p_mobileNo)
THEN
SET v_userCode = (SELECT userCode FROM UserLogin WHERE userName = p_emailId);
UPDATE UserLogin UL
SET password = p_password
WHERE userName = p_emailId AND userCode = v_userCode;
-- Delete the verified OTP
DELETE FROM OTP WHERE otp = p_otp AND mobileNo = p_mobileNo;
DECLARE v_Token CHAR(36);
INSERT INTO Token (createdAt, updatedAt,code,userCode,appInstanceCode,deviceIMEI,deviceName)
VALUES (NOW(),NOW(),v_Token,v_userCode,p_appInstanceCode,NULL,NULL);
SELECT 200 code, 'Password changed succesfully' as message,v_Token;
ELSE
SELECT 400 as code, 'Invalid OTP or Mobile No' as message,v_Token;
END IF;
ELSE
SELECT 401 as code, 'OTP expired' as message,v_Token;
END IF;
END
//
delimiter ;
Mariadb/MySQL创建过程中的神秘错误
但这些答案都无济于事!
在所有DECLARE语句结束之前都有一个集合。
根据官方文档
,将所有declare放在set或任何其他语句之前:
BEGIN
DECLARE v_IsOTPValid TINYINT DEFAULT NULL;
DECLARE v_userCode CHAR(36);
DECLARE v_Token CHAR(36);
SET v_IsOTPValid = NULL;
我有以下查询和错误: 错误消息:
我得到了一个错误。您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第1行'order(id)'附近使用正确的语法,但不确定原因。有人能帮忙吗?下面是实体。订单可以有很多产品。产品可以与许多订单相关联,餐馆与产品有一对一的关系
查询失败您的SQL语法中有一个错误;在第1行“comment_status='approved'ORDER BY comment_id desc”附近,请查看与您的MariaDB服务器版本相对应的手册中使用的正确语法 谢谢。
我在MySQL5.7.19版本中尝试执行查询视图时遇到了一个错误
我一直得到的错误:- “您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以了解在第1行的“Password='evertonblues'Forename='Josh'lasname='Edmondson'='199'附近使用的正确语法。” 运行我的更新查询时出错。
我尝试使用preared语句向表中插入一个新值,但我获得了一个无法解决的语法错误。 Java代码: 错误代码: 我希望你能帮助我谢谢你。