Rumah > pangkalan data > tutorial mysql > @variable vs. variable dalam MySQL: Apakah Perbezaannya?

@variable vs. variable dalam MySQL: Apakah Perbezaannya?

Barbara Streisand
Lepaskan: 2025-01-21 13:52:11
asal
215 orang telah melayarinya

@variable vs. variable in MySQL: What's the Difference?

Perbandingan jenis pembolehubah MySQL: @variable dan variable

MySQL menyediakan dua jenis pembolehubah: pembolehubah takrif pengguna dan pembolehubah takrif pengguna peringkat sesi. Yang terakhir bermula dengan simbol @ (@variable), manakala yang pertama tidak (variable).

Pembolehubah takrif pengguna

Pembolehubah sedemikian ditaip secara longgar dan mengekalkan nilainya sepanjang sesi. Ia dibuat di luar mana-mana prosedur tersimpan menggunakan pernyataan SET. Contohnya:

<code class="language-sql">SET @var = 1;</code>
Salin selepas log masuk

Pembolehubah takrif pengguna peringkat sesi

Tidak seperti pembolehubah yang ditentukan pengguna, pembolehubah ini hanya boleh dilihat dalam sesi semasa. Ia diisytiharkan dalam prosedur tersimpan dan diluluskan sebagai parameter. Contohnya:

<code class="language-sql">CREATE PROCEDURE prc_test(var INT)
BEGIN
    DECLARE var2 INT;
    SET var2 = 1;
END;</code>
Salin selepas log masuk

Perbezaan utama

Perbezaan utama antara dua jenis pembolehubah ini ialah skopnya dan cara ia dimulakan. Pembolehubah prosedur dimulakan semula kepada NULL setiap kali prosedur dipanggil, manakala pembolehubah peringkat sesi mengekalkan nilainya merentas panggilan prosedur. Coretan kod berikut menunjukkan perkara ini:

<code class="language-sql">CREATE PROCEDURE prc_test()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    SET var2 = var2 + 1;
    SET @var2 = @var2 + 1;
END;

SET @var2 = 1;</code>
Salin selepas log masuk

Contoh output:

var2 @var2
2 2
2 3
2 4

Seperti yang anda lihat, var2 dimulakan semula setiap kali, manakala @var2 mengumpul perubahan nilai merentas panggilan.

Kesimpulan

Memahami perbezaan antara @variable dan variable adalah penting untuk pembangunan MySQL yang berkesan. Ia membolehkan anda mengurus pembolehubah dengan sewajarnya berdasarkan skop dan tingkah laku permulaannya, memastikan kecekapan dan ketepatan kod.

Atas ialah kandungan terperinci @variable vs. variable dalam MySQL: Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan