使用参数在mysql中创建过程
请帮助我修复mysql中此代码的错误使用参数在mysql中创建过程,mysql,Mysql,请帮助我修复mysql中此代码的错误 DELIMITER// CREATE PROCEDURE USP_UpdateAccount (IN AuserName VARCHAR(100),IN AdisplayName VARCHAR(100),IN Apassword VARCHAR(100),IN AnewPassword VARCHAR(100)) BEGIN IN AisRightPass INT(0) SELECT AisRightPass = COUNT(*) FR
DELIMITER//
CREATE PROCEDURE USP_UpdateAccount (IN AuserName VARCHAR(100),IN AdisplayName VARCHAR(100),IN Apassword VARCHAR(100),IN AnewPassword VARCHAR(100))
BEGIN
IN AisRightPass INT(0)
SELECT AisRightPass = COUNT(*) FROM Account WHERE USERName = AuserName AND PassWordL = Apassword;
IF (AisRightPass =1)
BEGIN
IF (AnewPassword = NULL OR AnewPassword = '')
BEGIN
UPDATE Account SET DisplayName = AdisplayName WHERE UserName = AuserName;
END
ELSE
UPDATE Account SET DisplayName = AdisplayName, PassWordL = AnewPassword WHERE UserName = AuserName;
END
END //
DELIMITER;
MySQL说:文档
1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'分隔符的正确语法//
创建过程USP_UpdateAccount(在AuserName VARCHAR(100)中,在Ad'中的第1行谢谢大家!这是正确的代码
DELIMITER //
创建过程USP_UpdateAccount(在AuserName VARCHAR(100)、AdisplayName VARCHAR(100)、Apassword VARCHAR(100)、AnewPassword VARCHAR(100))中)
开始
声明aisrightpassint(0);
从USERName=AuserName和PassWordL=Apassword的帐户中选择AisRightPass=COUNT(*)
IF (AisRightPass =1) THEN
BEGIN
IF (AnewPassword = NULL OR AnewPassword = '') THEN
BEGIN
UPDATE Account SET DisplayName = AdisplayName WHERE UserName = AuserName;
END;
ELSE
UPDATE Account SET DisplayName = AdisplayName, PassWordL = AnewPassword WHERE UserName = AuserName;
end if;
END;
END IF;
结束//
DELIMITER;哪个错误?请花点时间使用“编辑”按钮设置您的帖子的格式编辑:谢谢Michael:)欢迎使用SO!我们在代码方面很出色,但却看不懂头脑。请编辑您的问题,让每个人都知道您收到的确切错误以及您想要的输出是什么,谢谢您将其标记为mysql,并且分隔符语法与mysql类似,但过程内部语法的某些方面更像MS SQL Server。您实际使用的是什么数据库系统,这些代码是从哪里产生的?据我所知,
CREATE PROC
必须在MySQL中表示为CREATE PROCEDURE
,而dbo.
是SQL Server的特征。谢谢。我使用sql现在想学习mysql,但不想修复这个错误。