Création de tables temporaires dans MySQL Procédure Stockée
La procédure suivante me donne une erreur lorsque j'invoque l'aide de l'instruction d'APPEL:
CREATE DEFINER=`user`@`localhost` PROCEDURE `emp_performance`(id VARCHAR(10))
BEGIN
DROP TEMPORARY TABLE IF EXISTS performance;
CREATE TEMPORARY TABLE performance AS
SELECT time_in, time_out, day FROM attendance WHERE employee_id = id;
END
Le message d'erreur indique "Inconnus" de la table "performance"".
C'est ma première fois en fait l'utilisation de procédures stockées et j'ai eu mes sources à partir de Google. Je juste ne peux pas comprendre ce que je fais de mal.
Vous devez vous connecter pour publier un commentaire.
J'ai rangé un peu de tout pour vous et ajout de l'exemple de code. J'ai toujours garder mes noms de paramètres de même que les champs qu'ils représentent, mais préfixe p_ qui empêche les problèmes. Je fais la même chose avec les variables déclarées dans la procédure stockée corps, mais préfixe v_.
Vous pouvez en trouver une autre de mes exemples ici:
La génération de la Profondeur en fonction de l'arborescence Hiérarchique des Données dans MySQL (pas d'expressions de table communes)
Par défaut de MySQL variable de config sql_notes est mis à 1.
Qui signifie que
DROP TEMPORARY TABLE IF EXISTS performance;
incréments warning_count un et vous obtenez un avertissement lorsqu'une procédure stockée finitions.
Vous pouvez définir sql_notes variable à 0 dans mon.cnf ou de réécriture de la procédure stockée comme ça: