대문 제작: imrahelk
지난 포스트에서 로그인 프로시저를 만들어 보았구요. 이번에는 회원 가입 프로시저를 만들어 봅니다.
SmpUser 테이블
이 테이블은 아래 포스트에 설명하였습니다.
도리안의 개발 이야기 #183 - 주말에 샘플 DB 테이블 추가
회원가입 프로시저의 파라메터
파라메터 이름 | 데이터 타입 | IN/OUT | 설명 |
---|---|---|---|
pUserId | VARCHAR(30) | IN | 사용자 아이디 |
pUserPw | VARCHAR(30) | IN | 비밀번호 |
pFirstName | VARCHAR(64) | IN | 이름 |
pLastName | VARCHAR(64) | IN | 성 |
pNickName | VARCHAR(32) | IN | 별명 |
pEmail | VARCHAR(128) | IN | 이메일 주소 |
pMobile | VARCHAR(32) | IN | 휴대폰 번호 |
resultCode | INT | Out | 회원가입 결과 코드 |
회원가입 결과 코드
- 0: 회원가입 성공
- -1: 사용자 아이디 중복으로 가입 불가
- -2: 기타 SQL 오류로 가입 불가
회원 가입 프로시저 오류 처리
회원 가입시 INSERT 문이 필요한데, INSERT가 실패할 경우를 처리해야 합니다. 이것은 오류 처리를 구현해야 합니다. 먼저 어떤 오류 조건을 사용할지를 결정해야 합니다.
오류 조건 | 오류 처리 |
---|---|
1062 | resultCode 파라메터 -1로 설정 |
SQLEXCEPTION | resultCode 파라메터 -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)를 작성할 예정입니다.