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

@variable vs. variable dalam MySQL: Apakah Perbezaannya?

Barbara Streisand
Barbara Streisandasal
2025-01-21 13:52:11217semak imbas

@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>

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>

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>

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!

Kenyataan:
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