>  기사  >  데이터 베이스  >  MySQL 저장 프로시저의 변수 범위는 무엇을 의미합니까?

MySQL 저장 프로시저의 변수 범위는 무엇을 의미합니까?

王林
王林앞으로
2023-08-26 16:49:11589검색

MySQL 저장 프로시저의 변수 범위는 무엇을 의미합니까?

BEGIN/END 블록 내부에 변수를 선언하면 해당 변수의 범위가 이 특정 블록에 있다고 가정합니다. 다른 BEGIN/END 블록 내에 동일한 이름의 변수를 선언할 수도 있습니다. 이는 완전히 합법적이지만 해당 범위는 BEGIN/END 블록 내에 있습니다. 이는 변수의 범위를 표시하는 프로시저를 생성하는 다음 예제를 통해 이해할 수 있습니다. -

Example

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제