Rumah > pangkalan data > tutorial mysql > Pembolehubah @pembolehubah yang ditakrifkan pengguna vs. Pembolehubah Prosedur dalam MySQL: Apakah Perbezaannya?

Pembolehubah @pembolehubah yang ditakrifkan pengguna vs. Pembolehubah Prosedur dalam MySQL: Apakah Perbezaannya?

Barbara Streisand
Lepaskan: 2025-01-21 13:57:17
asal
547 orang telah melayarinya

User-defined @variables vs. Procedure variables in MySQL: What's the Difference?

Memahami Jenis Pembolehubah MySQL: @pembolehubah dan Pembolehubah Setempat

MySQL menawarkan dua jenis pembolehubah utama: pembolehubah yang ditakrifkan pengguna (diawali dengan '@') dan pembolehubah setempat (ditakrifkan dalam prosedur tersimpan). Memahami perbezaan mereka adalah penting untuk pengurusan pangkalan data yang cekap.

Pembolehubah Ditakrifkan Pengguna: Storan Berasaskan Sesi

Pembolehubah takrif pengguna, yang dikenal pasti oleh simbol '@' terkemuka, ditaip secara dinamik dan mengekalkan nilainya sepanjang sesi MySQL tunggal. Ia mudah dimulakan menggunakan pernyataan SET atau dalam pertanyaan, menyediakan storan nilai sementara.

Prosedur tersimpan juga menggunakan pembolehubah, tetapi ini berbeza daripada pembolehubah yang ditentukan pengguna. Yang penting, pembolehubah prosedur-tempatan ini tidak mempunyai awalan '@' dan wujud semata-mata dalam skop prosedur. Mereka dimulakan semula kepada NULL dengan setiap pelaksanaan prosedur.

Skop dan Tingkah Laku: Perbezaan Yang Jelas

Perbezaan teras terletak pada skop: pembolehubah yang ditentukan pengguna adalah berskop sesi, mengekalkan nilai merentas berbilang pertanyaan dan pernyataan dalam satu sesi. Sebaliknya, pembolehubah prosedur adalah berskop prosedur, menetapkan semula kepada nilai lalainya (biasanya NULL) setiap kali prosedur dipanggil. Ini memastikan kebebasan prosedur.

Contoh Ilustrasi: Memerhati Tingkah Laku Berubah

Contoh berikut mempamerkan gelagat berbeza pembolehubah yang ditentukan pengguna dan prosedur:

<code class="language-sql">SET @var2 = 1;

CREATE PROCEDURE prc_test ()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    SET var2 = var2 + 1;
    SET @var2 = @var2 + 1;
    SELECT var2, @var2;
END;

CALL prc_test();
CALL prc_test();
CALL prc_test();</code>
Salin selepas log masuk

Output Terhasil:

<code>var2  @var2
---   ---
2     2
2     3
2     4</code>
Salin selepas log masuk

Perhatikan bahawa var2 (pembolehubah prosedur) ditetapkan semula kepada nilai lalainya (1) kemudian meningkat dengan setiap panggilan, manakala @var2 (pembolehubah takrif pengguna) mengekalkan dan mengumpul nilainya merentas seruan prosedur.

Kesimpulan: Memanfaatkan Sistem Pembolehubah MySQL

Sistem pembolehubah MySQL menawarkan pengurusan data yang fleksibel. Menyedari perbezaan antara pembolehubah (@) yang ditakrifkan pengguna dan pembolehubah setempat prosedur serta memahami skop masing-masing (sesi vs. prosedur), adalah kunci untuk menulis aplikasi pangkalan data yang mantap dan cekap.

Atas ialah kandungan terperinci Pembolehubah @pembolehubah yang ditakrifkan pengguna vs. Pembolehubah Prosedur 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