Bolehkah MySQL Mengisytiharkan Pembolehubah dan Penggunaan Semasa Gelung di Luar Prosedur Tersimpan?

Linda Hamilton
Lepaskan: 2024-10-24 10:52:29
asal
538 orang telah melayarinya

Can MySQL Declare Variables and Use While Loops Outside Stored Procedures?

Mengisytiharkan Pembolehubah dan Menggunakan While Loop Di Luar Prosedur Tersimpan dalam MySQL

Dalam MySQL, tidak mungkin untuk mengisytiharkan pembolehubah dan menggunakan gelung sementara di luar prosedur tersimpan. Ini kerana binaan ini mesti diisytiharkan dalam klausa BEGIN...END, yang hanya tersedia di dalam prosedur, fungsi, pencetus dan peristiwa yang disimpan.

Mengatasi Had

Jika anda perlu mengisytiharkan pembolehubah dan menggunakan gelung sementara di luar prosedur tersimpan, anda boleh membuat prosedur tersimpan sementara yang merangkumi fungsi ini. Berikut ialah templat yang boleh anda ikuti:

<code class="sql">CREATE TEMPORARY PROCEDURE my_temp_proc()
BEGIN
  DECLARE var1 INT;
  DECLARE var2 VARCHAR(255);
  
  WHILE var1 < 10 DO
    SET var2 = CONCAT(var2, 'Iteration ', var1, '\n');
    SET var1 = var1 + 1;
  END WHILE;
END</code>
Salin selepas log masuk

Penggunaan

Untuk melaksanakan prosedur tersimpan sementara dan mengakses pembolehubah yang diisytiharkan, anda boleh menggunakan langkah berikut:

  1. Laksanakan prosedur tersimpan:

    <code class="sql">CALL my_temp_proc();</code>
    Salin selepas log masuk
  2. Soal pembolehubah yang diisytiharkan menggunakan jadual INFORMATION_SCHEMA.ROUTINE_VARIABLES:

    <code class="sql">SELECT ROUTINE_NAME, VARIABLE_NAME, VARIABLE_TYPE, VARIABLE_VALUE
    FROM INFORMATION_SCHEMA.ROUTINE_VARIABLES
    WHERE ROUTINE_NAME = 'my_temp_proc';</code>
    Salin selepas log masuk

Ini akan mengeluarkan nilai pembolehubah yang diisytiharkan.

Atas ialah kandungan terperinci Bolehkah MySQL Mengisytiharkan Pembolehubah dan Penggunaan Semasa Gelung di Luar Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!