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();
Output akan menunjukkan:
<code>myProcVar @myUserVar --------- ---------- 2 2 2 3 2 4</code>
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!