Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:@variabel vs. variabel. Apa bedanya?

MySQL memiliki konsep variabel yang ditentukan pengguna .

Mereka adalah variabel yang diketik secara longgar yang dapat diinisialisasi di suatu tempat dalam suatu sesi dan mempertahankan nilainya hingga sesi berakhir.

Mereka diawali dengan @ tanda tangani, seperti ini:@var

Anda dapat menginisialisasi variabel ini dengan SET pernyataan atau di dalam kueri:

SET @var = 1

SELECT @var2 := 2

Saat Anda mengembangkan prosedur tersimpan di MySQL, Anda dapat meneruskan parameter input dan mendeklarasikan variabel lokal:

DELIMITER //

CREATE PROCEDURE prc_test (var INT)
BEGIN
    DECLARE  var2 INT;
    SET var2 = 1;
    SELECT  var2;
END;
//

DELIMITER ;

Variabel ini tidak diawali dengan awalan apa pun.

Perbedaan antara variabel prosedur dan variabel yang ditentukan pengguna khusus sesi adalah bahwa variabel prosedur diinisialisasi ulang ke NULL setiap kali prosedur dipanggil, sedangkan variabel khusus sesi tidak:

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

Seperti yang Anda lihat, var2 (variabel prosedur) diinisialisasi ulang setiap kali prosedur dipanggil, sementara @var2 (variabel khusus sesi) tidak.

(Selain variabel yang ditentukan pengguna, MySQL juga memiliki beberapa "variabel sistem" yang telah ditentukan sebelumnya, yang mungkin berupa "variabel global" seperti @@global.port atau "variabel sesi" seperti @@session.sql_mode; "variabel sesi" ini tidak terkait dengan variabel yang ditentukan pengguna khusus sesi.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Query untuk memilih data dari minggu lalu?

  2. ASCII() Contoh – MySQL

  3. Menggunakan Database Relasional MySQL di Debian 6 (Squeeze)

  4. MySQL:ALTER IGNORE TABLE TAMBAHKAN UNIK, apa yang akan dipotong?

  5. Manajemen akun pengguna, peran, izin, otentikasi PHP dan MySQL - Bagian 2