BEGIN/END 블록 내부에 변수를 선언하면 해당 변수의 범위가 이 특정 블록에 있다고 가정합니다. 다른 BEGIN/END 블록 내에 동일한 이름의 변수를 선언할 수도 있습니다. 이는 완전히 합법적이지만 해당 범위는 BEGIN/END 블록 내에 있습니다. 이는 변수의 범위를 표시하는 프로시저를 생성하는 다음 예제를 통해 이해할 수 있습니다. -
mysql> Create Procedure Scope_variables() -> BEGIN -> DECLARE A Varchar(5) Default 'outer'; -> BEGIN -> DECLARE A Varchar(5) Default 'inner'; -> SELECT A; -> END; -> SELECT A; -> END; -> // Query OK, 0 rows affected (0.08 sec)
위 프로시저에는 A라는 동일한 이름을 가진 두 개의 변수가 있습니다. 여기서는 내부 변수가 범위 내에서 선언된 한 우선순위를 갖습니다. 요점은 첫 번째 END에 도달하면 내부 변수가 사라지고 "범위를 벗어났다"고 말하는 것입니다. 이 개념을 이해하려면 이 프로세스를 다음과 같이 호출하세요. -
mysql> CALL Scope_variables(); +-------+ | A | +-------+ | inner | +-------+ 1 row in set (0.00 sec) +-------+ | A | +-------+ | outer | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
위 내용은 MySQL 저장 프로시저의 변수 범위는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!