Mysql 5.6.12 bug:在视图定义中使用别名命令时出错1356

时间:2013-07-05 08:16:47

标签: mysql

我有一个非常简单的查询,工作正常:

SELECT *
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id

SELECT *我最终创建了重复的列名,因此我将查询编辑为更具体 并忽略重复的列名称,但MySQL引发#1356错误:

SELECT i.is as id, s.id as imageid
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
  

#1356 - 查看'events.v_image_stats'引用无效的表或列(s)或函数或定义者/调用者的视图缺乏使用它们的权利

v_image_stats视图及其所基于的视图和表具有正确的权限,我完全陷入困境。

我正在使用MySQL 5.6和phpmyadmin来创建和管理视图,我也在Phalcon框架内通过PHP PDO访问数据库,但我很确定这是一个MySQL问题,而不是其他任何问题。

感激不尽的任何帮助。

我最初发布了SHOW CREATE VIEW的完整输出,但它太冗长了,这是我可以创建的最简单的例子来重现问题:

CREATE ALGORITHM=UNDEFINED DEFINER=`events`@`localhost` SQL SECURITY DEFINER VIEW `v_image_stats` AS
(
    select it.*, 1 AS `my_alias`
    from `v_image_totals` `it`
    order by `my_alias` asc)
)

如果我在FROM子句中使用表而不是视图,它也会失败。

1 个答案:

答案 0 :(得分:3)

这似乎是影响MySQL 5.6.10及更高版本的错误(我没有针对MySQL 5.7进行测试)。 我已经提出了一个MySQL的错误,所以可以跟踪并希望修复: http://bugs.mysql.com/bug.php?id=69678

请参阅注释以获得有效的解决方法。