在mysql中使用参数创建过程

时间:2018-08-28 13:10:20

标签: 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(*) 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服务器版本相对应的手册,以在'DELIMITER //

附近使用正确的语法

创建过程USP_UpdateAccount(在第1行的IN AuserName VARCHAR(100),IN Ad'中

1 个答案:

答案 0 :(得分:0)

谢谢大家!这是正确的代码。

DELIMITER //

创建过程USP_UpdateAccount(IN AuserName VARCHAR(100),IN AdisplayName VARCHAR(100),IN Apassword VARCHAR(100),IN AnewPassword VARCHAR(100))

开始 宣告AisRightPass int(0);     在用户名=用户名和密码=密码的帐户中选择SELECT 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;

END // 分隔符;