Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 저장 프로시저에서 조건문(IF)을 올바르게 구현하는 방법

MySQL 저장 프로시저 내에서 조건 분기를 처리하려면 IF-ELSE 문을 사용하면 됩니다. 기본적인 문법 구조는 다음과 같습니다.

if yourCondition then
yourStatement1;
else
yourStatement2;
end if;
end
//

저장 프로시저 생성 예제

위 문법을 실제로 적용해 보겠습니다. 입력값이 10이면 당첨 메시지를, 그렇지 않으면 다른 메시지를 출력하는 프로시저를 만들어 보겠습니다.

mysql> delimiter //
mysql> create procedure Test_Demo(In inputValue int)
-> BEGIN
-> if inputValue=10 then
-> select 'You have won 100$';
-> else
-> select 'Sorry !!!';
-> end if;
-> end
-> //
Query OK, 0 rows affected (0.20 sec)
mysql> delimiter ;

여기서 주의할 점은 프로시저 본문의 각 SQL 문 끝에 반드시 세미콜론(;)을 붙여야 한다는 것입니다. 세미콜론이 누락되면 구문 오류가 발생합니다. 또한 delimiter //로 구분자를 변경한 후 프로시저 생성이 완료되면, 반드시 delimiter ;로 원래대로 되돌려야 이후 일반 SQL 문장이 정상적으로 실행됩니다.

저장 프로시저 호출하기

생성된 프로시저는 CALL 명령어를 사용하여 호출할 수 있습니다.

mysql> call Test_Demo(10);

입력값으로 10을 전달했기 때문에 IF 조건이 참이 되어 다음과 같은 결과가 출력됩니다.

+-------------------+
| You have won 100$ |
+-------------------+
| You have won 100$ |
+-------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

정리

MySQL 저장 프로시저에서 조건문을 구현할 때는 다음 세 가지만 기억하면 됩니다. 첫째, IF-THEN-ELSE-END IF 구조를 정확히 작성하고 각 문장 끝에 세미콜론을 붙입니다. 둘째, 프로시저 정의 전후로 DELIMITER 설정을 적절히 변경하고 복원합니다. 셋째, 완성된 프로시저는 CALL 명령으로 실행합니다. 이 규칙만 지키면 조건 분기 로직을 안정적으로 구현할 수 있습니다.