Απολυμάνσεις Αθήνα

mysql 스토어드 프로시저 예제

150 150 trap

위의 예제에서는 몇 가지 DELIMITER 명령을 추가하였고 세미콜론을 두 개의 전진 슬래시로 대체했습니다. 여기에 무슨 일이 일어나고 있나요? 짝수 숫자는 2로 균등하게 나눌 수 있는 숫자입니다. 다음 절차에서 사용자는 IN 매개 변수를 통해 숫자를 전달하고 1과 특정 숫자 사이의 짝수 수를 합합니다. MySQL 저장 프로시저 및 함수를 사용하면 데이터베이스 개발자가 유용한 코드 비트를 재사용을 위해 멋진 작은 `패키지`로 래핑할 수 있습니다. 이 블로그 게시물에서는 저장 프로시저를 자신의 일상 업무 흐름에 통합하는 간단한 예제를 제공합니다. 위의 절차는 실행될 때 테이블에 3개의 레코드를 삽입합니다. 동일한 출력은 아래에 나와 있습니다. 위의 구문에서 사각형 중괄호에 언급 된 항목은 선택 사항입니다. 위의 절차에서 WHEN은 if 조건의 시작을 나타냅니다. 키워드 CASE는 조건부 분기의 시작을 의미합니다. 식 문은 모든 변수이거나 평가중인 식일 수 있습니다. 그런 다음 표현식이 true로 평가되는 경우 본문이 시작되면 나타냅니다.

위의 예제는 저장 프로시저를 만들고 호출하는 구문을 보여 주기 위한 간단한 예제입니다. 약간 더 복잡한 저장 프로시저를 살펴보겠습니다. 덧붙여, 순서는 중요하다. 먼저 변수를 선언합니다. 그런 다음 조건을 선언합니다. 그런 다음 커서를 선언합니다. 그런 다음 처리기를 선언합니다. 잘못된 순서로 넣으면 오류 메시지가 나타납니다. 그 이유는 MySQL이 이미 각 SQL 문의 끝을 표시하기 위한 구분 기호로 세미콜론을 인식하기 때문입니다.

따라서 MySQL이 첫 번째 세미콜론을 보자마자 구분 기호를 해석하고 저장 프로시저가 중단됩니다. 삽입 프로시저는 특정 레코드를 만들 때 미리 정의된 항목의 무리를 삽입하는 데 사용됩니다. 완벽한 사용 사례는 사용자가 만들 때 사용자에게 몇 가지 기본 액세스 권한을 할당하는 것입니다. 그러한 활동을 하기 위해서는 일할 테이블이 필요합니다. 아래 제공된 create 문을 사용하여 표를 만듭니다: 위의 절차는 학생이 시험에 합격했는지 또는 점수가 매겨지는 점수를 기준으로 실패했는지 여부에 관계없이 학생의 결과 상태를 할당합니다. 프로시저는 table student_marks의 레코드 를 중심으로 루프를 실행합니다. 커서는 기본적으로 선택한 레코드를 가리킵니다. 위의 코드에서 볼 수 있듯이 커서 cur1은 student_marks 테이블의 모든 레코드를 가리킵니다. 루프 read_loop를 실행하면 cur1 커서가 행별로 데이터 행을 가져오는 데 사용됩니다. THE STATEMENT FETCH cur1 in sid,mks 는 현재 행의 데이터를 변수에 넣고 커서를 다음 행을 가리키도록 이동합니다. 따라서 각 행은 본문에 제공 된 if 조건에 대 한 처리 되 고 있습니다. if 조건은 마크를 확인하고 학생이 시험에 합격했는지 여부를 결정합니다.

따라서 테이블의 행이 업데이트됩니다. 프로시저를 호출할 때 아래 표시된 것과 유사한 결과를 확인할 수 있습니다. 예를 들어 저장 프로시저는 CALL 문으로 호출해야 하지만 저장된 함수는 SQL 식에서 직접 사용할 수 있습니다. MySQL을 사용하는 모든 A2 호스팅 서버에서 저장된 프로시저를 정의하고 실행할 수 있습니다. 위의 코드에서 세미콜론과 배치된 따옴표를 주의 깊게 확인합니다.

  • 0