Erreur MySQL dans une procédure #1351 - Vue de SÉLECTIONNER contient une variable ou d'un paramètre
PhpMyAdmin n'accepte pas les paramètres "id_jugador_IN" à l'intérieur de la procédure.
C'est la procédure que nous sommes d'exécution:
SET GLOBAL event_scheduler = 1;
use traviandatabase;
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_monitoritzacio_jugador $$
CREATE PROCEDURE sp_monitoritzacio_jugador(IN id_jugador_IN INT(10))
BEGIN
CREATE OR REPLACE
VIEW dades_ususari AS
SELECT j.nom AS jugador, j.sexe AS sexe, j.edat AS edat, j.correu AS correu, a.nom AS alianca, p.nom AS pais, c.nom_ciutat AS ciutat
FROM jugador AS j
JOIN alianca AS a
JOIN pais AS p
JOIN ciutat AS c
ON j.id_jugador = id_jugador_IN
GROUP BY id_jugador_IN;
END $$
DELIMITER ;
CALL sp_monitoritzacio_jugador(1);
Et c'est la table "jugador":
DROP TABLE IF EXISTS `jugador`;
CREATE TABLE `jugador` (
`id_jugador` int(10) NOT NULL AUTO_INCREMENT,
`id_raca` int(10) NOT NULL,
`id_pais` int(10) NOT NULL,
`id_alianca` int(10) DEFAULT '0',
`nom` varchar(20) NOT NULL,
`sexe` enum('Home','Dona') NOT NULL,
`edat` int(10) NOT NULL,
`correu` varchar(20) NOT NULL,
PRIMARY KEY (`id_jugador`),
KEY `jugador-alianca` (`id_alianca`),
KEY `id_pais` (`id_pais`),
KEY `id_raca` (`id_raca`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Afin de ne pas arrêter l'affichage de la même erreur:
MySQL a dit: 1351 - Vue de SÉLECTIONNER contient une variable ou d'un paramètre
OriginalL'auteur Roger Fernandez Guri | 2012-07-02
Vous devez vous connecter pour publier un commentaire.
Comme vous le voyez - vue ne peut pas utiliser des variables, c'est une limitation. Vous essayez de créer une vue exacte OÙ l'état de santé; construction de l'instruction CREATE VIEW texte d'abord, puis utilisez les requêtes préparées pour exécuter l'instruction, il va vous aider. Mais, avez-vous vraiment besoin d'elle, de créer, de créer et de créer un nouveau point de vue?
EDIT: Ceci est le contenu de la référence dans le commentaire.
Olexandr Melnyk Une solution simple pour MySQL limitation sur les variables locales d'utilisation dans les vues est d'utiliser une fonction qui renvoie la valeur d'une variable:
Jetez un oeil à la vue de la documentation: dev.mysql.com/doc/refman/5.5/en/create-view.html. Il y a des commentaires de l'utilisateur, de lire ce one - 'Une solution simple pour MySQL limitation sur les variables locales d'utilisation dans les vues...' Il pourrait vous aider.
OriginalL'auteur Devart