Nilai pulangan prosedur tersimpan MySQL bermaksud mengembalikan hasil kepada pemanggil selepas melaksanakan prosedur tersimpan. Prosedur tersimpan ialah objek pengaturcaraan pangkalan data yang penting dalam MySQL Ia membolehkan pengguna mentakrifkan set pernyataan SQL yang disimpan dalam pangkalan data Set pernyataan ini boleh dipanggil beberapa kali, membantu meningkatkan prestasi sistem.
Prosedur tersimpan mempunyai pelbagai fungsi dalam MySQL, seperti melaksanakan logik perniagaan, memudahkan pernyataan SQL, meningkatkan kelajuan akses data, dsb. Dalam prosedur tersimpan, selain daripada melaksanakan pernyataan SQL, anda juga boleh menentukan pembolehubah, pernyataan bersyarat, pernyataan gelung, dsb. Dalam aplikasi praktikal, prosedur tersimpan selalunya perlu mengembalikan beberapa nilai, seperti hasil pelaksanaan, mesej ralat, dsb.
Prosedur tersimpan MySQL menyokong dua jenis nilai pulangan: parameter OUT dan set hasil. Parameter OUT ialah satu atau lebih nilai yang dikembalikan kepada pemanggil selepas prosedur tersimpan dilaksanakan, dan jenisnya boleh menjadi mana-mana jenis data MySQL. Memandangkan parameter OUT hanya mengembalikan satu nilai, jika anda perlu mengembalikan berbilang nilai, anda perlu menentukan berbilang parameter OUT. Kod sampel berikut:
CREATE PROCEDURE proc_example(IN id INT, OUT name VARCHAR(20), OUT age INT) BEGIN SELECT user_name, user_age INTO name, age FROM user WHERE user_id = id; END;
Dalam kod sampel di atas, prosedur tersimpan menerima parameter id sebagai input dan mengembalikan dua nama dan umur parameter OUT. Apabila prosedur tersimpan dipanggil, jadual pengguna akan disoal berdasarkan id parameter input, dan kemudian nama_pengguna dan umur_pengguna dalam hasil pertanyaan akan diberikan kepada parameter nama dan umur masing-masing. Ambil perhatian bahawa jika hasil pertanyaan kosong, tiada nilai akan dikembalikan.
Satu lagi jenis nilai pulangan ialah set hasil (ResultSet), yang merupakan koleksi data yang dikembalikan oleh pernyataan pertanyaan SQL. Dalam prosedur tersimpan, anda boleh menentukan pembolehubah kursor untuk memproses set hasil dan kemudian mengembalikannya kepada pemanggil. Berikut ialah kod sampel:
CREATE PROCEDURE proc_rs_example(OUT rs_result CURSOR) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE user_name VARCHAR(20); DECLARE user_age INT; DECLARE cur CURSOR FOR SELECT user_name, user_age FROM user; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; SET rs_result = cur; read_loop: LOOP FETCH cur INTO user_name, user_age; IF done THEN LEAVE read_loop; END IF; END LOOP; CLOSE cur; END;
Dalam kod sampel di atas, prosedur tersimpan mentakrifkan parameter OUT rs_result, iaitu pembolehubah kursor. Kursor ialah penunjuk yang boleh merentasi hasil pertanyaan, yang melaluinya hasil pertanyaan boleh diproses satu demi satu. Dalam prosedur tersimpan, kursor kursor ditakrifkan menggunakan pernyataan DECLARE dan set hasil pernyataan SELECT terikat pada kursor. Kemudian gunakan pernyataan OPEN untuk membuka kursor dan berikannya kepada parameter OUT rs_result. Seterusnya, kursor dilalui dalam gelung untuk mendapatkan setiap baris data dalam hasil pertanyaan Selepas semua data diproses, kursor ditutup dan pelaksanaan prosedur tersimpan selesai.
Apabila menggunakan prosedur tersimpan, jika anda perlu mendapatkan nilai pulangan prosedur tersimpan, anda boleh menggunakan pernyataan CALL yang disediakan oleh MySQL untuk memanggil prosedur tersimpan. Seperti yang ditunjukkan di bawah, nilai yang dikembalikan boleh diperolehi daripada prosedur tersimpan dengan menggunakan pernyataan CALL:
CALL proc_example(1, @name, @age); SELECT @name, @age;
Ringkasnya, dalam pangkalan data MySQL, menetapkan nilai pulangan prosedur tersimpan adalah sangat mudah. Dengan mentakrifkan parameter OUT atau pembolehubah kursor, prosedur tersimpan boleh mengembalikan sebarang jenis nilai atau set hasil, yang menjadikan pengaturcaraan pangkalan data lebih fleksibel untuk memenuhi keperluan pelbagai senario aplikasi.
Atas ialah kandungan terperinci Analisis ringkas tentang nilai pulangan prosedur tersimpan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!