Rumah  >  Artikel  >  pangkalan data  >  pengembalian prosedur tersimpan mysql

pengembalian prosedur tersimpan mysql

PHPz
PHPzasal
2023-05-11 18:07:07643semak imbas

Prosedur tersimpan MySQL ialah koleksi pernyataan SQL pra-tulisan yang boleh dipanggil sebagai unit. Prosedur tersimpan MySQL mempunyai banyak kelebihan, seperti meningkatkan prestasi pangkalan data, mengurangkan trafik rangkaian, menyatukan dan memudahkan logik perniagaan, dan meningkatkan keselamatan. Walau bagaimanapun, dalam proses menggunakan prosedur tersimpan MySQL, kadangkala kita juga perlu mengembalikan set hasil Artikel ini akan menyelidiki cara menggunakan prosedur tersimpan MySQL untuk mengembalikan set hasil.

  1. Membuat prosedur tersimpan

Mencipta prosedur tersimpan MySQL adalah sangat mudah dan boleh dilakukan melalui kenyataan CREATE PROCEDURE. Berikut ialah contoh mudah prosedur tersimpan yang menerima dua parameter integer, menambahkannya dan mengembalikan hasilnya:

DELIMITER //
BUAT PROSEDUR add_numbers(IN num1 INT, IN num2 INT, OUT hasil INT)
MULAKAN
​​Hasil SET = num1 + num2;
TAMAT //
PENDELIMITER ;

  1. Panggil prosedur tersimpan

Panggil The prosedur tersimpan juga sangat mudah, hanya gunakan pernyataan CALL. Berikut ialah contoh yang memanggil prosedur tersimpan yang dibuat di atas dan mencetak hasilnya ke konsol:

SET @a = 1;
SET @b = 2;
CALL add_numbers (@a, @ b, @result);
PILIH @result;

  1. Kembalikan set hasil

Jika anda perlu mengembalikan set hasil dalam prosedur tersimpan MySQL , maka anda boleh menggunakan CURSOR. KURSOR boleh digunakan untuk lelaran melalui set hasil dan menyimpan keputusan kepada pembolehubah. Berikut ialah contoh yang mengembalikan set hasil untuk senarai produk:

DELIMITER //
CIPTA PROSEDUR get_product_list()
MULAKAN
​​ISYTIHKAN selesai INT lalai SALAH;
ISYTIHKAN id INT;
ISYTIHKAN nama VARCHAR(255);

ISYTIHKAN kursor kursor UNTUK ID PILIH, nama DARIPADA produk;
ISYTIHKAN TERUS PENGENDALI UNTUK TIDAK DIJUMPAI SET selesai = BENAR;

BUAT JADUAL JIKA TIDAK WUJUD temp_product_list(id INT, name VARCHAR(255));
TRUNCATE JADUAL temp_product_list;

BUKA cur;

read_loop: LOOP

FETCH cur INTO id, name;
IF done THEN
  LEAVE read_loop;
END IF;

INSERT INTO temp_product_list(id, name)
VALUES(id, name);
CLOSE cur;

SELECT * FROM temp_product_list;

END //
DELIMITER ;

Dalam kod di atas, kita mula-mula mencipta objek CURSOR , dan nyatakan senarai produk untuk ditanya. Semasa merentasi set hasil, kami memasukkan hasil ke dalam jadual temp_product_list satu demi satu. Akhirnya, kami mengembalikan hasil pertanyaan.

    Memproses hasil yang dikembalikan
Apabila memanggil prosedur tersimpan, kita boleh menggunakan pernyataan SELECT untuk memproses set hasil yang dikembalikan. Contohnya:

CALL get_product_list();

Pernyataan ini akan memanggil prosedur tersimpan get_product_list dan mengembalikan set hasil. Kita boleh menggunakan pernyataan SELECT untuk mengeluarkan set hasil ke konsol:

SELECT * FROM temp_product_list

Pernyataan ini akan mengeluarkan semua hasil dalam jadual temp_product_list.

Ringkasan

Prosedur tersimpan MySQL ialah teknologi yang sangat berguna yang boleh membantu kami meningkatkan prestasi pangkalan data, mengurangkan trafik rangkaian, menyatukan dan memudahkan logik perniagaan serta meningkatkan keselamatan. Dalam penggunaan sebenar, kita mungkin perlu mengembalikan set hasil Dalam kes ini, kita boleh menggunakan CURSOR untuk melintasi hasil pertanyaan dan menyimpan keputusan ke jadual. Akhir sekali, kita boleh menggunakan pernyataan SELECT untuk memproses set hasil yang dikembalikan. Melalui pengenalan artikel ini, saya percaya pembaca akan mempunyai pemahaman yang lebih mendalam tentang cara menggunakan prosedur tersimpan MySQL untuk mengembalikan set hasil.

Atas ialah kandungan terperinci pengembalian prosedur tersimpan mysql. 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