Rumah > pangkalan data > tutorial mysql > Pembolehubah MySQL: Apakah Perbezaan Antara `@pembolehubah` dan Pembolehubah Prosedur?

Pembolehubah MySQL: Apakah Perbezaan Antara `@pembolehubah` dan Pembolehubah Prosedur?

Patricia Arquette
Lepaskan: 2025-01-21 13:46:09
asal
628 orang telah melayarinya

MySQL Variables: What's the Difference Between `@variables` and Procedure Variables?

Pembolehubah Ditakrifkan Pengguna MySQL: @pembolehubah lwn. Pembolehubah Prosedur

MySQL menawarkan pembolehubah yang ditentukan pengguna, dilambangkan dengan simbol @ terkemuka (cth., @myVar). Ini @variables adalah skop sesi; ia dimulakan dalam sesi dan berterusan sehingga sesi tamat. Yang penting, ia berbeza daripada pembolehubah prosedur.

Tidak seperti @variables, pembolehubah prosedur adalah setempat kepada prosedur tersimpan. Setiap kali prosedur dipanggil, pembolehubah setempatnya dimulakan semula kepada NULL. Ini berbeza dengan ketara dengan @variables, yang mengekalkan nilainya merentas berbilang panggilan prosedur dalam sesi yang sama. Mengubah suai @variable di dalam prosedur mempengaruhi nilainya untuk panggilan berikutnya dalam sesi itu.

Ia juga penting untuk membezakan kedua-dua @variables dan pembolehubah prosedur daripada pembolehubah sistem MySQL. Pembolehubah sistem sama ada global (cth., @@global.port) atau berskop sesi (cth., @@session.sql_mode). Pembolehubah sistem sesi, manakala khusus sesi, berkelakuan berbeza daripada @variables.

Mari kita gambarkan perbezaannya:

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

SET @myUserVar = 1;

CALL prc_test();
CALL prc_test();
CALL prc_test();
Salin selepas log masuk

Output akan menunjukkan:

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

Perhatikan bahawa myProcVar (pembolehubah prosedur) ditetapkan semula kepada 2 dengan setiap panggilan, manakala @myUserVar (pembolehubah yang ditentukan pengguna) meningkat secara kumulatif, mengekalkan nilainya merentas panggilan.

Pemahaman ini penting untuk menggunakan pembolehubah MySQL dengan berkesan. @variables mengurus data sesi, pembolehubah prosedur mengendalikan keadaan prosedur setempat dan pembolehubah sistem mengawal persekitaran pangkalan data.

Atas ialah kandungan terperinci Pembolehubah MySQL: Apakah Perbezaan Antara `@pembolehubah` dan Pembolehubah Prosedur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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