Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan \'Ralat 1329: Tiada Data Diambil, Dipilih atau Diproses\' dalam Prosedur Tersimpan MySQL?

Bagaimana untuk Menyelesaikan \'Ralat 1329: Tiada Data Diambil, Dipilih atau Diproses\' dalam Prosedur Tersimpan MySQL?

Susan Sarandon
Susan Sarandonasal
2024-10-25 19:11:02279semak imbas

How to Resolve

Cara Menghapuskan "Ralat 1329: Tiada Data Diambil, Dipilih atau Diproses"

Apabila melaksanakan prosedur tersimpan yang tidak mengembalikan nilai, pengguna mungkin menghadapi "Ralat 1329: Tiada data - sifar baris diambil, dipilih atau diproses." Untuk menangani isu ini, ikut langkah berikut:

Pertimbangkan prosedur tersimpan berikut:

CREATE PROCEDURE `testing_proc`()  
    READS SQL DATA  
BEGIN  
    DECLARE done INT DEFAULT 0;
    DECLARE l_name VARCHAR(20);
    DECLARE my_cur CURSOR FOR
        SELECT name FROM customer_tbl;
    OPEN my_cur;
        my_cur_loop:
        LOOP FETCH my_cur INTO l_name;
            IF done = 1 THEN
                LEAVE my_cur_loop;
            END IF;
            INSERT INTO names_tbl VALUES(l_name);
        END LOOP my_cur_loop;
    CLOSE my_cur;
END

Ralat berpunca daripada tingkah laku MySQL yang memaparkan amaran walaupun ia telah dikendalikan. Untuk mengelakkan ini, masukkan baris berikut pada penghujung prosedur:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

Sebagai alternatif, tambahkan pernyataan "dummy" yang melibatkan jadual dan laksanakan dengan jayanya selepas gelung, contohnya:

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

Ini akan mengosongkan amaran disebabkan oleh pepijat/kelakuan aneh dalam MySQL (dirujuk dalam http://dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Ralat 1329: Tiada Data Diambil, Dipilih atau Diproses\' dalam 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