MySQL在select *中找不到视图

时间:2013-02-06 17:38:44

标签: mysql sql sql-view

我的数据库中有许多表和几个相互构建的视图。当我尝试像这样查询视图时:

select [db].[view].* from [db].[view];

我收到以下错误ERROR 1051 (42S02): Unknown table '[view]'

[db][view]是实际数据库和视图名称的占位符。

当我遗漏[db]部分时,一切正常。此外,对于某些视图,它适用于[db]前置,而其他视图则不适用。

有人知道为什么会这样或者如何避免它?

查询是由我使用的抽象层生成的,所以我无法直接控制它们。

编辑:我发现它与*选择器有关,因为当我写出所有字段名称时它不会发生。对我来说看起来像个错误。

1 个答案:

答案 0 :(得分:0)

MySQL使用反引号分隔符来转义一些保留的关键字,而不是TSQL使用的括号。

SELECT `db`.`view`.* FROM `db`.`view`;

如果您的标识符上有括号

SELECT `[db]`.`[view]`.* FROM `[db]`.`[view]`