Rumah >pangkalan data >tutorial mysql >@variable vs. variable dalam MySQL: Apakah Perbezaannya?
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!