mysql 中有一種叫
session variables
.翻譯過來大概是:會話變量。這是其中的一種變量。
這種變量是以
@
為标志的變量,例如:
@var
這種是弱類型的變量,可以在一個會話的任何地方聲明,并且在整個會話内有效。
另外一種變量以 DECLARE 關鍵字聲明的變量,隻能在存儲過程中使用(下面稱作“存儲過程變量”),例如下面:
DECLARE var1 INT DEFAULT 0;
主要用在存儲過程中,或者是給存儲傳參數中。
兩者的差別是:
在調用存儲過程時,存儲過程變量(就是以 DECLARE 聲明的變量)都會被初始化為 NULL ;而會話變量(即 set @var=1 這一類的變量)則不會被再初始化,在一個會話内,隻須初始化一次,之後在會話内都是對上一次計算的結果,就相當于在是這個會話内的全局變量。
參考出處:
http://stackoverflow.com/questions/1009954/mysql-variable-vs-variable-whats-the-difference