지난 포스트에서 로그인 프로시저를 만들어 보았구요. 이번에는 회원 가입 프로시저를 만들어 봅니다.
이 테이블은 아래 포스트에 설명하였습니다.
도리안의 개발 이야기 #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 | 회원가입 결과 코드 |
회원 가입시 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)를 작성할 예정입니다.