Maison > base de données > tutoriel mysql > le corps du texte

**Comment résoudre « Erreur 1329 : Aucune donnée » dans les procédures stockées lorsqu'aucun résultat n'est attendu ?**

Mary-Kate Olsen
Libérer: 2024-10-28 20:30:30
original
751 Les gens l'ont consulté

**How to Resolve

Comment gérer « Erreur 1329 : aucune donnée » avec des procédures stockées

Problème :

Vous avez une procédure stockée cela n’a pas besoin de renvoyer de valeurs. Il s'exécute avec succès, mais il génère un message d'erreur une fois terminé :

Error: No data - zero rows fetched, selected, or processed
Copier après la connexion

Solution :

Le message d'erreur apparaît car la procédure stockée ne gère pas explicitement le cas où aucune donnée n’est renvoyée par aucune de ses opérations. Pour résoudre ce problème, vous pouvez inclure une instruction DECLARE CONTINUE HANDLER pour ignorer l'erreur NOT FOUND :

<code class="sql">DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
Copier après la connexion

Explication :

L'instruction DECLARE CONTINUE HANDLER indique à MySQL de ignorez l'erreur NOT FOUND et continuez à exécuter la procédure stockée. Dans votre cas spécifique, cette instruction doit être ajoutée après la boucle qui parcourt les lignes de la table customer_tbl :

<code class="sql">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;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
Copier après la connexion

Remarque supplémentaire :

Pour la version MySQL 5.5.13 et supérieur, vous pouvez également ajouter une instruction « factice » à la fin de la procédure stockée pour effacer l'avertissement :

<code class="sql">SELECT name INTO l_name FROM customer_tbl LIMIT 1;</code>
Copier après la connexion

Cette instruction est réussie et n'implique aucune donnée, effaçant ainsi le message d'avertissement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!