MySQL에서는 저장 프로시저 외부에서 변수 선언 및 while 루프를 사용할 수 없습니다. 이는 저장 프로시저, 함수, 트리거 및 이벤트 내에서만 사용할 수 있는 BEGIN...END 절 내에서 이러한 구문을 선언해야 하기 때문입니다.
제한 극복
변수를 선언하고 저장 프로시저 외부에서 while 루프를 사용해야 하는 경우 이 기능을 캡슐화하는 임시 저장 프로시저를 만들 수 있습니다. 다음은 따를 수 있는 템플릿입니다.
<code class="sql">CREATE TEMPORARY PROCEDURE my_temp_proc() BEGIN DECLARE var1 INT; DECLARE var2 VARCHAR(255); WHILE var1 < 10 DO SET var2 = CONCAT(var2, 'Iteration ', var1, '\n'); SET var1 = var1 + 1; END WHILE; END</code>
사용
임시 저장 프로시저를 실행하고 선언된 변수에 액세스하려면 다음 단계를 사용할 수 있습니다.
저장 프로시저 실행:
<code class="sql">CALL my_temp_proc();</code>
INFORMATION_SCHEMA.ROUTINE_VARIABLES 테이블을 사용하여 선언된 변수 쿼리:
<code class="sql">SELECT ROUTINE_NAME, VARIABLE_NAME, VARIABLE_TYPE, VARIABLE_VALUE FROM INFORMATION_SCHEMA.ROUTINE_VARIABLES WHERE ROUTINE_NAME = 'my_temp_proc';</code>
선언된 변수의 값이 출력됩니다.
위 내용은 MySQL이 변수를 선언하고 저장 프로시저 외부에서 While 루프를 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!