구문은 다음과 같습니다
declare var_name[,...] type [default value];
MYSQL 변수 정의는 저장 프로시저 또는 함수는 Oracle/SQL Server와 달리 내부에 정의됩니다. 이 변수의 범위는 시작...end 블록 내에만 있을 수 있습니다. 변수 정의는 다른 명령문보다 먼저 복합 명령문의 시작 부분에 작성되어야 합니다. 동일한 유형의 여러 변수를 한 번에 선언할 수 있습니다. 기본값을 사용하여 기본값을 할당할 수 있습니다. declare只能用在局部变量定义中。
#举例 declare v_test int default 10;
set var_name=expr,[,var_name2=expr ...]; #举例 set v_test=15;방법 2
select col_name[,...] into var_name[,...] table_expr; #举例 select sid into @a from test1;if col_name (예: sid)는 여러 행 값을 반환하고, @a는 결국 마지막 행 값만 반환합니다.
create procedure add(in a int,in b int) begin declare c int default 0;#c定义的局部变量 set c = a + b; select c as c; end;
변수의 범위는 지역 변수의 범위보다 넓습니다. 사용자 변수는 현재 연결 전체에 대해 작동할 수 있지만, 현재 연결이 끊어지면 해당 연결에 의해 정의된 사용자 변수는 사라집니다. 사용자 변수는 다음과 같이 정의됩니다. @
변수 이름
#举例 set @a = 1; set @b = 2; select @sum:=(@a + @b), @dif:=(@a - @b);결과
다른 클라이언트의 변수는 변경할 수 없습니다. . 현재 연결이 끊어지면 해당 연결에 의해 설정된 모든 세션 변수가 무효화됩니다. 会话变量的作用域与用户变量一样,仅限于当前连接
#设置会话变量有如下三种方式: set session var_name = value; set @@session.var_name = value; set var_name = value; #查看一个会话变量也有如下三种方式: select @@var_name; select @@session.var_name; show session variables like "%var%";
SUPER 권한이 있어야 합니다. 전역 변수는 서버의 전체 수명 주기에서 작동하지만 재시작을 포괄할 수는 없습니다. 즉, 다시 시작하면 설정된 모든 전역 변수가 무효화됩니다. 다시 시작한 후에도 전역 변수가 계속 적용되도록 하려면 해당 구성 파일을 변경해야 합니다.
#要设置一个全局变量,有如下两种方式: set global var_name = value; set @@global.var_name = value; //同上 #要想查看一个全局变量,有如下两种方式: select @@global.var_name; show global variables like "%var%";참고: 여기서는 global을 생략할 수 없습니다. 매뉴얼에 따르면 set 명령어로 변수를 설정할 때 GLOBAL, SESSION, LOCAL을 지정하지 않으면 기본적으로 SESSION이 사용된다. [관련 추천]1. 3.
불린 교육 Yan Shiba mysql 소개 영상 튜토리얼
위 내용은 mysql의 변수에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!