Bonjour, j'ai actuellement un problème avec MySQL!
Qu'est-ce qui ne va pas ici? Je suis un utilisateur de cPanel , et oui j'ai cherché ceci et je n'ai trouvé aucune réponse définitive. Il semble que ce soit plus spécifique que d'autres personnes ayant les mêmes problèmes de codes d'erreur. Veuillez ajouter une réponse détaillée que je peux suivre! P.s J'utilise un compte d'hébergement partagé.
DELIMITER $$--
-- Functions
--
CREATE DEFINER = `root`@`localhost` FUNCTION `fnc_calcWalkedDistance` (
`steamid64` BIGINT UNSIGNED
) RETURNS INT( 10 ) UNSIGNEDNO SQL BEGIN DECLARE finished INTEGER DEFAULT 0;
DECLARE distance INTEGER DEFAULT 0;
DECLARE x1, x2, z1, z2 FLOAT;
DECLARE curs CURSOR FOR SELECT x, z
FROM log_positions
WHERE `steamid` = steamid64
ORDER BY `timestamp` DESC ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished =1;
OPEN curs;
FETCH curs INTO x1, z1;
SET x2 = x1;
SET z2 = z1;
calculate : LOOPFETCH curs INTO x1, z1;
IF finished =1 THEN LEAVE calculate;
END IF ;
SET distance = distance + SQRT( POW( x2 - x1, 2 ) + POW( z2 - z1, 2 ) ) ;
-- SET distance = distance + 1;
SET x2 = x1;
SET z2 = z1;
END LOOP calculate;
CLOSE curs;
RETURN distance;
END$$
Voici le code d'erreur:
MySQL said: Documentation
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Cela signifie que vous n'avez pas les privilèges pour créer le déclencheur avec root @ localhost user ..
essayez de supprimer definer de la commande de déclenchement:
CREER ( DEFINER = root
@ localhost
FONCTION fnc_calcWalkedDistance
Supprimez simplement "DEFINER = your user name
@ localhost
"et exécuter le SQL à partir de phpmyadminwill fonctionne très bien.
Cela peut arriver un peu tard mais si vous téléchargez un fichier sql sur cpanel, essayez de remplacer root par votre nom d'utilisateur cpanel dans votre fichier sql.
dans le cas ci-dessus, vous pourriez écrire
CRÉER UN DÉFINITEUR = control_panel_username
@ localhost
FONCTION fnc_calcWalkedDistance
puis téléchargez le fichier. J'espère que ça aide