我的数据库中有许多表和几个相互构建的视图。当我尝试像这样查询视图时:
select [db].[view].* from [db].[view];
我收到以下错误ERROR 1051 (42S02): Unknown table '[view]'
。
[db]
和[view]
是实际数据库和视图名称的占位符。
当我遗漏[db]
部分时,一切正常。此外,对于某些视图,它适用于[db]
前置,而其他视图则不适用。
有人知道为什么会这样或者如何避免它?
查询是由我使用的抽象层生成的,所以我无法直接控制它们。
编辑:我发现它与*选择器有关,因为当我写出所有字段名称时它不会发生。对我来说看起来像个错误。
答案 0 :(得分:0)
MySQL
使用反引号分隔符来转义一些保留的关键字,而不是TSQL使用的括号。
SELECT `db`.`view`.* FROM `db`.`view`;
如果您的标识符上有括号
SELECT `[db]`.`[view]`.* FROM `[db]`.`[view]`