您好,我目前遇到MySQL问题!
这里出了什么问题?我是一名cPanel用户,是的,我搜索了这个,发现没有明确的答案.看起来这比具有相同错误代码问题的其他人更具体.请添加我可以遵循的详细回复!我正在使用共享主机帐户.
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$$
Run Code Online (Sandbox Code Playgroud)
这是错误代码:
MySQL said: Documentation
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Run Code Online (Sandbox Code Playgroud)
Ama*_*wal 40
这意味着您没有权限使用root @ localhost用户创建触发器.
尝试从触发器命令中删除definer:
CREATE DEFINER = root@localhost功能 fnc_calcWalkedDistance
Sha*_*fiq 13
只需删除“ DEFINER = your user name@ localhost”并从phpmyadmin运行SQL即可正常工作。
小智 11
这可能会有点晚,但如果你要在cpanel上上传一个sql文件,那么尝试用你的sql文件中的cpanel用户名替换root.
在上面的情况下你可以写
CREATE DEFINER = control_panel_username@ localhost功能 fnc_calcWalkedDistance
然后上传文件.希望能帮助到你