SORU
17 HAZİRAN 2009, ÇARŞAMBA


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
17 HAZİRAN 2009, ÇARŞAMBA


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.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Helen Bradley

    Helen Bradle

    4 Mart 2008
  • mist64

    mist64

    30 Mayıs 2006
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011