2

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

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

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

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

当我省略[db]部分时,一切正常。此外,对于某些视图,它可以使用[db]前置,而在其他视图中则不行。

有人知道为什么会发生这种情况或如何避免这种情况吗?

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

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

4

1 回答 1

0

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

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

如果您的标识符上有括号

SELECT `[db]`.`[view]`.* FROM `[db]`.`[view]`
于 2013-02-06T17:39:25.633 回答