Rumah  >  Artikel  >  pangkalan data  >  Bolehkah MySQL Mengisytiharkan Pembolehubah dan Penggunaan Semasa Gelung di Luar Prosedur Tersimpan?

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

Linda Hamilton
Linda Hamiltonasal
2024-10-24 10:52:29539semak imbas

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>

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>
  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>

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!

Kenyataan:
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