Rumah > pangkalan data > tutorial mysql > Pembolehubah Ditakrifkan Pengguna vs Pembolehubah Prosedur dalam MySQL: Apakah Perbezaannya?

Pembolehubah Ditakrifkan Pengguna vs Pembolehubah Prosedur dalam MySQL: Apakah Perbezaannya?

Mary-Kate Olsen
Lepaskan: 2025-01-21 14:01:10
asal
544 orang telah melayarinya

User-Defined Variables vs. Procedure Variables in MySQL: What's the Difference?

Perbandingan pembolehubah yang ditentukan pengguna dan pembolehubah proses dalam MySQL

Dalam MySQL, pembolehubah yang ditentukan pengguna diisytiharkan dengan awalan @, manakala pembolehubah prosedur tidak mempunyai awalan. Perbezaan ini timbul daripada fakta bahawa pembolehubah tetapan pengguna khusus sesi mengekalkan nilainya merentas sesi, manakala pembolehubah prosedur dimulakan semula kepada NULL pada setiap panggilan prosedur.

Pembolehubah khusus sesi (@pembolehubah)

Pembolehubah takrif pengguna yang diawali dengan @ bertindak sebagai pembolehubah khusus sesi. Mereka boleh dimulakan menggunakan pernyataan SET atau dalam pertanyaan dan berterusan sehingga akhir sesi. Contohnya:

<code class="language-sql">SET @var = 1;</code>
Salin selepas log masuk

Pembolehubah proses (pembolehubah)

Pembolehubah yang diisytiharkan dalam prosedur atau fungsi tersimpan tanpa awalan ialah pembolehubah setempat. Pembolehubah ini hanya tersedia dalam skop prosedur dan dimulakan semula kepada NULL pada setiap panggilan prosedur.

<code class="language-sql">CREATE PROCEDURE prc_test ()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    ...
END;</code>
Salin selepas log masuk

Perbezaan utama

Jadual berikut meringkaskan perbezaan utama antara @ pembolehubah dan pembolehubah proses:

Ciri @variable (khusus sesi) pembolehubah (pembolehubah proses) Skop Terakhir untuk keseluruhan sesi Dimulakan semula pada setiap panggilan prosedur Sintaks Diawali dengan
特性 @variable (会话特定) variable (过程变量)
作用域 持续整个会话 每次过程调用时重新初始化
语法 @ 为前缀 没有前缀
Tiada awalan table>

Contoh

Pertimbangkan prosedur tersimpan berikut:

<code class="language-sql">CREATE PROCEDURE prc_test ()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    SET var2 = var2 + 1;
    SET @var2 = @var2 + 1;
    ...
END;</code>
Salin selepas log masuk

Setiap kali prosedur ini dipanggil, var2 ditetapkan semula kepada 1 dan @var2 terus dinaikkan. Ini menunjukkan tingkah laku pemulaan semula pembolehubah proses dan sifat khusus sesi pembolehubah yang ditentukan pengguna.

Atas ialah kandungan terperinci Pembolehubah 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