Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CT
- EC2
- Map-reduce
- Anaconda
- git
- NRMSE
- kernel
- relaxation time
- x-ray
- nodejs
- procedure
- FSL
- 평가지표
- MRI
- coursera
- MySQL
- ml
- object detection
- Dual energy X-ray
- pytorch
- pm2
- ubuntu
- 동차좌표계
- AWS
- Emoji
- Homogeneous Coordinates
- Cost Function
- https
- ssl
- error
Archives
- Today
- Total
Pay it Forward
PROCEDURE (프로시져) 도중에 중단하기 (return 0; 사용하기) 본문
728x90
프로시져의 조건문에서 프로시져를 미리 마치는 경우 (예외처리가 되는 경우)를 만나게 되면
뒤의 나머지 코드들을 실행하지 않고 곧바로 종료분기를 하고 싶은 경우가 있습니다
즉, C, C++ 등의 언어에서 return 0; 의 역할을 하는 코드를 사용하고 싶은 경우입니다
MYSQL에서는 이러한 역할을 블록(block)의 개념으로 구현할 수 있습니다
BEGIN 과 END 로 블록을 지정하고 이 블록 내에서 leave <block 이름> 과 같이 코드를 작성하면
종료분기와 같은 기능을 합니다.
다음은 예제 코드입니다
proc_body: BEGIN
DECLARE result INT default 0;
SET result = (SELECT userIdx From User WHERE userName = 'artiiicy');
IF result > 0 THEN
SELECT 'yes';
leave proc_body;
UPDATE User SET userName = 'artiiicy' WHERE userIdx = result;
END
위의 코드에서 proc_body 라는 블록내에 코드들이 존재합니다.
User Table에 artiiicy라는 유저가 있으면 그 유저의 userIdx를 result에 저장합니다
만약 result에 값이 있다면, 즉 artiiicy라는 유저가 있다면 'yes'를 출력하고 블록을 빠져나옵니다
따라서 뒤의 UPDATE문 은 실행하지 않고 프로시져가 종료됩니다.
728x90
'DB > MYSQL' 카테고리의 다른 글
[MYSQL] 중복 제거하고 Table에 Data 넣기 (Insert + NOT EXIST) (0) | 2020.07.07 |
---|---|
MYSQL에 이모티콘(emoji) 저장하기 + error 처리(mysql row size too large. the maximum row size for the used table type not counting blobs is 65535) (0) | 2020.05.22 |
PROCEDURE (프로시져) SELECT 결과 변수에 저장하기 (0) | 2020.02.25 |
[Error] You are using safe update mode 에러 해결방법 (0) | 2020.02.14 |
MYSQL에서 문자열 자르기 (String Split) (0) | 2020.02.05 |
Comments