>  기사  >  데이터 베이스  >  MySQL이 변수를 선언하고 저장 프로시저 외부에서 While 루프를 사용할 수 있습니까?

MySQL이 변수를 선언하고 저장 프로시저 외부에서 While 루프를 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 10:52:29539검색

Can MySQL Declare Variables and Use While Loops Outside Stored Procedures?

MySQL의 저장 프로시저 외부에서 변수 선언 및 While 루프 사용

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>

사용

임시 저장 프로시저를 실행하고 선언된 변수에 액세스하려면 다음 단계를 사용할 수 있습니다.

  1. 저장 프로시저 실행:

    <code class="sql">CALL my_temp_proc();</code>
  2. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.