MySQL 변수 유형 비교: @variable
및 variable
MySQL은 사용자 정의 변수와 세션 수준 사용자 정의 변수라는 두 가지 유형의 변수를 제공합니다. 후자는 @
기호(@variable
)로 시작하는 반면, 전자는 그렇지 않습니다(variable
).
사용자 정의 변수
이러한 변수는 느슨하게 입력되며 세션 전체에서 해당 값을 유지합니다. SET
문을 사용하여 저장 프로시저 외부에서 생성됩니다. 예:
<code class="language-sql">SET @var = 1;</code>
세션 수준 사용자 정의 변수
사용자 정의 변수와 달리 이 변수는 현재 세션에서만 표시됩니다. 저장 프로시저에서 선언되고 매개변수로 전달됩니다. 예:
<code class="language-sql">CREATE PROCEDURE prc_test(var INT) BEGIN DECLARE var2 INT; SET var2 = 1; END;</code>
주요 차이점
이 두 변수 유형의 주요 차이점은 범위와 초기화 방법입니다. 프로시저 변수는 프로시저가 호출될 때마다 NULL
으로 다시 초기화되는 반면, 세션 수준 변수는 프로시저 호출 전반에 걸쳐 해당 값을 유지합니다. 다음 코드 조각은 이를 보여줍니다.
<code class="language-sql">CREATE PROCEDURE prc_test() BEGIN DECLARE var2 INT DEFAULT 1; SET var2 = var2 + 1; SET @var2 = @var2 + 1; END; SET @var2 = 1;</code>
출력 예:
var2 | @var2 |
---|---|
2 | 2 |
2 | 3 |
2 | 4 |
보시다시피 var2
은 매번 다시 초기화되는 반면 @var2
은 호출 전반에 걸쳐 값 변경 사항을 누적합니다.
결론
효과적인 MySQL 개발을 위해서는 @variable
과 variable
의 차이점을 이해하는 것이 중요합니다. 이를 통해 범위 및 초기화 동작에 따라 변수를 적절하게 관리하여 코드 효율성과 정확성을 보장할 수 있습니다.
위 내용은 MySQL의 @변수와 변수: 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!