MySQL DB 실습 #4 - 회원 가입 프로시저 만들기

in zzan •  5 years ago 



대문 제작: imrahelk

지난 포스트에서 로그인 프로시저를 만들어 보았구요. 이번에는 회원 가입 프로시저를 만들어 봅니다.

SmpUser 테이블

이 테이블은 아래 포스트에 설명하였습니다.

도리안의 개발 이야기 #183 - 주말에 샘플 DB 테이블 추가

회원가입 프로시저의 파라메터

파라메터 이름데이터 타입IN/OUT설명
pUserIdVARCHAR(30)IN사용자 아이디
pUserPwVARCHAR(30)IN비밀번호
pFirstNameVARCHAR(64)IN이름
pLastNameVARCHAR(64)IN
pNickNameVARCHAR(32)IN별명
pEmailVARCHAR(128)IN이메일 주소
pMobileVARCHAR(32)IN휴대폰 번호
resultCodeINTOut회원가입 결과 코드

회원가입 결과 코드

  • 0: 회원가입 성공
  • -1: 사용자 아이디 중복으로 가입 불가
  • -2: 기타 SQL 오류로 가입 불가

회원 가입 프로시저 오류 처리

회원 가입시 INSERT 문이 필요한데, INSERT가 실패할 경우를 처리해야 합니다. 이것은 오류 처리를 구현해야 합니다. 먼저 어떤 오류 조건을 사용할지를 결정해야 합니다.

오류 조건오류 처리
1062resultCode 파라메터 -1로 설정
SQLEXCEPTIONresultCode 파라메터 -2로 설정

회원 가입 프로시저 코드

DROP PROCEDURE IF EXISTS signUp;
DELIMITER $$
CREATE PROCEDURE signUp(IN pUserId VARCHAR(32), IN pUserPw VARCHAR(32), IN pFirstName VARCHAR(64), IN pLastName VARCHAR(64), IN pNickName VARCHAR(32), IN pEmail VARCHAR(128), IN pMobile VARCHAR(32), OUT resultCode INT)
BEGIN
    -- To handle user ID duplication
    DECLARE EXIT HANDLER FOR 1062
    BEGIN
        SHOW ERRORS;
        ROLLBACK;
        SET resultCode = -1;
    END;

    -- To handle the other SQL exceptions
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        SHOW ERRORS;
        ROLLBACK;
        SET resultCode = -2;
    END;

    -- Sign up
    INSERT INTO SmpUser (
        userId,
        userPw,
        firstName,
        lastName,
        nickName,
        email,
        mobile,
        joinTime
    )
    VALUES (
        pUserId,
        pUserPw,
        pFirstName,
        pLastName,
        pNickName,
        pEmail,
        pMobile,
        NOW()
    );

    -- Set the result
    SET resultCode = 0;
END $$
DELIMITER ;

다음 포스트는...

다음 포스트에서는 사용자를 조회하는 저장 프로시저(stored procedure)를 작성할 예정입니다.

aaronhong_banner.jpg

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!