gpt4 book ai didi

mysql - 解决创建 MYSQL View 的问题

转载 作者:行者123 更新时间:2023-11-28 23:30:51 26 4
gpt4 key购买 nike

我是 mysql 的新手,所以也许对你们中的一些人来说我的问题看起来很幼稚。

我有这个查询在数据库中创建一个表(这里是 fiddle ):

CREATE TABLE `hydrants log` (
`TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ID` int(8) NOT NULL,
`TRIG` int(1) NOT NULL,
`VALUE` int(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我也有这个查询来创建 View :

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`;

当我尝试在 sql fiddle 中创建它时。我收到此错误:

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` 

所以我的问题是如何更改 View 查询以创建上面的 View ?

最佳答案

我认为,问题出在 View 的 DEFINER=`geo`@`%` 参数中。 sqlfiddle 的 MySQL 数据库中没有这样的用户,您不能将他指定为 View 定义者。所有其他参数必须有效。
此外,像 SQL SECURITY DEFINER 这样的限制在 sqlfiddle 中也不起作用,因为您只有一个用户,无法添加新用户或编辑现有用户。使用此参数进行查询将有效,但不会被使用。

关于mysql - 解决创建 MYSQL View 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com