MySQL: @değişken vs değişken. Ne farkeder ki?
Başka bir soru birisi arasında bir fark olduğunu söyledi Ben kazanırım:)
@variable
ve:
variable
MySQL. Ayrıca MSSQL toplu kapsam ve MySQL var oturum kapsamı ne kadar bahsetti. Birisi bana bunu anlatabilir mi?
CEVAP
MySQL
kavramı vardıruser-defined variables.
Bir yerlerde bir oturumda başlatılmış ve oturumu sona kadar onların değerini tutmak gevşek yazılmış değişkenlerdir.
@
işareti ile e bunlar şöyle: @var
Sorguda SET
ifadesi ile ya da içinde: bu değişken başlatabilir
SET @var = 1
SELECT @var2 := 2
MySQL
, bir saklı yordam geliştirirken giriş parametreleri ve yerel değişkenleri bildirebilirsiniz:
DELIMITER //
CREATE PROCEDURE prc_test (var INT)
BEGIN
DECLARE var2 INT;
SET var2 = 1;
SELECT var2;
END;
//
DELIMITER ;
Bu değişkenler herhangi bir önek ile e değildir.
Fark arasında bir yordam değişken ve bir oturuma özgü kullanıcı tanımlı değişken olduğunu yordam değişken yeniden NULL
Her zaman yordamı çağrıldığında, oturuma özgü değişken değildir:
CREATE PROCEDURE prc_test ()
BEGIN
DECLARE var2 INT DEFAULT 1;
SET var2 := var2 1;
SET @var2 := @var2 1;
SELECT var2, @var2;
END;
SET @var2 = 1;
CALL prc_test();
var2 @var2
--- ---
2 2
CALL prc_test();
var2 @var2
--- ---
2 3
CALL prc_test();
var2 @var2
--- ---
2 4
Sen, var2
(prosedürü) değişken gördüğünüz gibi @var2
(oturum özgü değişken) ise yordamı her çağrıldığında yeniden.
(Kullanıcı tanımlı değişkenleri ek olarak, MySQLayrıcabazı önceden tanımlanmış "sistem değişkenleri" edebilir "genel değişkenler" gibi @@global.port
veya "Oturum değişkenleri" gibi @@session.sql_mode
; bu "oturum değişkenleri" ilgisiz oturuma özgü kullanıcı tanımlı değişkenler.)
MySQL bir değişken bildirmek...
Bağımsız değişken bir dizi bir işleve ...
Sabit vs değişken türleri - Python...
PL/basit bir dizi değişken oluşturma S...
Açısal yönergesi ifadeler yönergesinde...