存储过程如下:我主要是想实现一个注册功能,并返回注册状态。
DELIMITER $$CREATE
    PROCEDURE `db_aacheyou`.`P_HandleUserReg`(
p_userName VARCHAR(30),
p_userType TINYINT,
p_realName VARCHAR(20),
p_plainPass VARCHAR(50),
p_pass VARCHAR(100),
p_email VARCHAR(30),
p_mobileNO VARCHAR(11),
P_brand VARCHAR(300),
p_licence VARCHAR(10),
p_color TINYINT,
p_startPrice DECIMAL(10,2),
p_seats INT,
OUT p_regStatus TINYINT
    )    
    BEGIN
/*定义注册状态:p_regStatus:0-注册失败;1-注册成功;2-用户已存在*/
DECLARE userName VARCHAR(30);
DECLARE userType TINYINT;
DECLARE realName VARCHAR(20);
DECLARE plainPass VARCHAR(50);
DECLARE pass VARCHAR(100);
DECLARE email VARCHAR(30);
DECLARE mobileNO VARCHAR(11);
DECLARE brand VARCHAR(300);
DECLARE licence VARCHAR(10);
DECLARE color TINYINT;
DECLARE startPrice DECIMAL(10,2);
DECLARE seats INT;
DECLARE regTime DATETIME;

SET p_regStatus = 0;
SET userName = p_userName;
SET userType = p_userType;
SET realName = p_realName;
SET plainPass = p_plainPass;
SET pass = p_pass;
SET email = p_email;
SET mobileNO = p_mobileNO;
SET brand = P_brand;
SET licence = p_licence;
SET color = p_color;
SET startPrice = p_startPrice;
SET seats = p_seats;
SET regTime = NOW();

IF (NOT EXISTS(SELECT C_UserName FROM t_user WHERE C_UserName = userName)) THEN
BEGIN
    DECLARE errCount INT DEFAULT 0;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET errCount=1;     
    
    START TRANSACTION;
    IF userType = 0 THEN
    BEGIN
INSERT INTO t_user(C_UserID,C_UserType,C_UserName,C_RealName,C_PlainPassword,C_Password,C_Email,C_MobileNO,C_RegTime) 
VALUES(F_Get20SystemID(),userType,userName,realName,plainPass,pass,email,mobileNO,regTime);

INSERT INTO t_car(C_CarID,C_UserName,C_Brand,C_LicenceTag,C_Color,C_Seats,C_StartPrice,C_RegTime) 
VALUES(F_Get20SystemID(),userName,brand,licence,color,seats,startPrice,regTime);
    END;
    ELSE
    BEGIN
        INSERT INTO t_user(C_UserID,C_UserType,C_UserName,C_RealName,C_PlainPassword,C_Password,C_Email,C_MobileNO,C_RegTime) 
VALUES(F_Get20SystemID(),userType,userName,realName,plainPass,pass,email,mobileNO,regTime);
    END;
    
    IF errCount = 1 THEN
    BEGIN
ROLLBACK;
    END;
    ELSE
    BEGIN
COMMIT;
SET p_regStatus = 1;
    END;
END;
ELSE
BEGIN
    SET p_regStatus = 2;
END;
END IF;
    END$$DELIMITER ;问题如下:
Query: CREATE PROCEDURE `db_aacheyou`.`P_HandleUserReg`( p_userName VARCHAR(30), p_userType TINYINT, p_realName VARCHAR(20), p_plainPas...Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
ELSE
BEGIN
    SET p_regStatus = 2;
END;
END IF;
    END' at line 77Execution Time : 0 sec
Transfer Time  : 0 sec
Total Time     : 0.001 sec
---------------------------------------------------对MySql不是很熟悉,还望各位知情者给予指点,先谢谢了。