Rumah >pangkalan data >tutorial mysql >Pembolehubah @pembolehubah yang ditakrifkan pengguna vs. Pembolehubah Prosedur dalam MySQL: Apakah Perbezaannya?
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>
Output Terhasil:
<code>var2 @var2 --- --- 2 2 2 3 2 4</code>
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!