创建MYSQL视图的疑难解答
我是mysql的新手,所以也许对你们中的一些人来说,我的问题看起来很幼稚 我使用此查询在数据库中创建表(如下所示): 我还有这个查询来创建视图:创建MYSQL视图的疑难解答,mysql,Mysql,我是mysql的新手,所以也许对你们中的一些人来说,我的问题看起来很幼稚 我使用此查询在数据库中创建表(如下所示): 我还有这个查询来创建视图: CREATE ALGORITHM=UNDEFINED DEFINER=`geo`@`%` SQL SECURITY DEFINER VIEW `hydrants_log_maxtime` AS select `hydrants log`.`ID` AS `id`,`hydrants log`.`TRIG` AS `trig`,`hydrants lo
CREATE ALGORITHM=UNDEFINED DEFINER=`geo`@`%` SQL SECURITY DEFINER VIEW `hydrants_log_maxtime`
AS select `hydrants log`.`ID` AS `id`,`hydrants log`.`TRIG` AS `trig`,`hydrants log`.`VALUE` AS `value`,max(`hydrants log`.`TIME`) AS `time` from `hydrants log` group by `hydrants log`.`ID`;
当我尝试在SQLFIDLE中创建它时。我得到这个错误:
Access denied; you need (at least one of) the SUPER privilege(s) for this operation.
我想这一行的问题是:
UNDEFINED DEFINER=`geo`@`%` SQL SECURITY DEFINER VIEW `hydrants_log_maxtime`
因此,我的问题是如何更改视图查询以创建上面的视图 我认为,问题在于视图的
DEFINER=`geo`@`%`
参数。sqlfiddle的MySQL数据库中没有这样的用户,您不能将其指定为视图定义者。所有其他参数必须工作。另外,像
SQL安全定义器这样的限制在sqlfiddle中也不起作用,因为您只有一个用户,无法添加新用户或编辑现有用户。使用此参数的查询将正常工作,但它将不被使用。Andrew,我是否只需要从查询中删除此DEFINER=geo@%`?
UNDEFINED DEFINER=`geo`@`%` SQL SECURITY DEFINER VIEW `hydrants_log_maxtime`