Top

mysql 저장 프로시저 예제

이 명령문은 저장 프로시저의 특성을 변경하는 데 사용할 수 있습니다. ALTER 프로시저 문에 두 개 이상의 변경 내용을 지정할 수 있습니다. 그러나 이 문을 사용 하 여 저장 프로시저의 매개 변수 또는 본문을 변경할 수 없습니다. 이러한 변경을 하려면 DROP 프로시저 및 CREATE 프로시저를 사용하여 프로시저를 삭제하고 다시 만들어야 합니다. 다음은 구문입니다 : 위의 구문에서 주목해야 할 용어는 커서입니다. 커서는 데이터베이스의 행에 대한 포인터와 유사합니다. 커서에 결과 집합을 할당할 수 있습니다. 커서가 할당되면 레코드를 하나씩 반복하는 데 도움이 될 수 있습니다. read_loop 레이블은 특정 레이블에서 반복을 계속하는 데 사용됩니다. 따라서 read_loop:LOOP를 작성할 때 코드는 LEAVE read_loop 문이 발생할 때까지 계속 회전합니다. 구문을 이해한 이제 첫 번째 프로시저를 반복하여 작성해 보겠습니다. 구문에 대한 기본적인 이해를 구이제 아래 코드를 사용하여 첫 번째 프로시저를 만들어 보겠습니다. 두 가지를 해결할 수 있을 때 한 가지 문제를 해결하는 이유는 무엇입니까? MySQL의 저장 절차 (sprocs)가 바지인 방법에 대해 많이 들었지만 직접 시도하지는 않았습니다.

그러던 어느 날, 친절한 DBA와 이야기를 나누던 중 그는 지금 사용해도 괜찮다고 말했습니다. 나는 주변에 물어 대부분의 개발자는 내가 그들을 사용하는 것에 대해 경고 이야기하지만 난 문제가 있었고 sprocs 우아한 솔루션처럼 보였다. 이를 통해 MySQL은 저장 프로시저를 만드는 동안 다른 구분 기호를 사용하도록 지시했습니다. 저장된 프로그램 및 뷰는 사용하기 전에 정의되며 참조될 때 해당 권한을 결정하는 보안 컨텍스트 내에서 실행됩니다. 이러한 권한은 DEFINER 특성에 의해 제어되며, 이 권한이 있는 경우 SQL SECURITY 특성이 있습니다. 저장된 모든 프로그램(프로시저, 함수 및 트리거) 및 뷰에는 MySQL 계정의 이름을 지정하는 DEFINER 특성이 있을 수 있습니다. 정의자 특성이 저장된 프로그램 또는 뷰 정의에서 생략된 경우 기본 계정은 개체를 만드는 사용자입니다. 다음 예제에서는 INOUT 매개 변수와 IN 매개 변수를 사용하는 간단한 저장 프로시저를 보여 주며 있습니다. 사용자는 USER_details 테이블에서 남성 또는 여성의 수를 계산하기 위해 IN 매개 변수 (emp_gender)를 통해 `M` 또는 `F`를 제공합니다. INOUT 매개 변수(mfgender)는 결과를 사용자에게 반환합니다. 프로시저의 코드 및 출력은 다음과 같습니다: 지금까지 는 프로시저 실행 결과를 반환하거나 쿼리를 실행하여 주석을 반환했습니다.

이제 특정 계산을 수행하고 평가된 값을 반환해야 합니다. 예를 들어 특정 역할을 갖는 사용자 수를 계산해 보겠습니다. 사용자를 계산하려면 특정 역할별로 사용자를 검색하고 레코드 수를 확인해야 합니다. 이렇게 하려면 아래 쿼리를 실행 합니다. 짝수 숫자는 2로 균등하게 나눌 수 있는 숫자입니다. 다음 절차에서 사용자는 IN 매개 변수를 통해 숫자를 전달하고 1과 특정 숫자 사이의 짝수 수를 합합니다. MySQL 저장 프로시저 및 함수를 사용하면 데이터베이스 개발자가 유용한 코드 비트를 재사용을 위해 멋진 작은 `패키지`로 래핑할 수 있습니다. 이 블로그 게시물에서는 저장 프로시저를 자신의 일상 업무 흐름에 통합하는 간단한 예제를 제공합니다. 위의 예제에서는 몇 가지 DELIMITER 명령을 추가하였고 세미콜론을 두 개의 전진 슬래시로 대체했습니다.

여기에 무슨 일이 일어나고 있나요? 위의 코드에서 보았듯이 정적 사용자 ID와 기본 키 값을 제공했습니다. 이렇게 하면 한 번 사용한 후에는 프로시저를 사용할 수 없게 됩니다. 따라서 이러한 값을 자동화할 수 있는 방법이 필요합니다. 먼저 기본 키의 값부터 시작하겠습니다. 위의 학생 마크 사용 사례에서 제공된 ID를 기반으로 학생의 합격 점수를 인쇄하기만 하면 됩니다.