没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误
Posted
技术标签:
【中文标题】没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误【英文标题】:Views without "WITH NO SCHEMA BINDING" return relation "does not exist" error 【发布时间】:2019-01-30 15:14:13 【问题描述】:我创建了一些基本视图WITH NO SCHEMA BINDING
。在其中一个视图之上,我想创建一个主视图,但这迫使我在没有WITH NO SCHEMA BINDING
clause 的情况下创建它——我假设是由于对基本视图的依赖。
创建主视图后,如果我通过select * from master_view
查询它,一切正常。
但是,几个小时后查询它 - 我收到一个关系“不存在”错误..
另一方面,从任何非主视图中选择 *(创建 WITH NO SCHEMA BINDING
永远不会失败..
知道为什么会发生这种情况,以及如何确保主视图在创建一次后永久存在?
【问题讨论】:
您是否提交了您的创建视图语句? @JonScott 否,但根据 docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html “默认情况下,单个 Amazon Redshift 操作(查询、DDL 语句、加载)会自动提交到数据库。”此外,我对使用WITH NO SCHEMA BINDING
创建的视图没有问题 - 我也没有提交
你用什么工具来创建 master_view ,然后你从哪里测试它?
@JonScott 我使用 Aqua Data Studio 处理一切,因此通过 jdbc 连接。 create view master_view as ...
所以 - 如果您创建视图,请尝试 - 完全关闭 aqua 视图 - 重新进入 - 再试一次?会发生什么
【参考方案1】:
根据https://forums.aws.amazon.com/thread.jspa?threadID=263944,它看起来像以下错误:'Invalid operation: All the relation names inside should be qualified when creating VIEW WITH NO SCHEMA '
是由一些正在连接的表未指定表所属的架构引起的。
例如:JOIN table
应该是 JOIN schema.table
。
指定架构允许我在创建主视图时使用with no schema binding
并解决了我的问题
【讨论】:
以上是关于没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误的主要内容,如果未能解决你的问题,请参考以下文章
linux下tomcat启动没有日志,没有进程,没有报错,没有监听端口
为啥 HKSample 数组对于一个没有限制、没有谓词、没有锚点的 HKAnchoredObjectQuery 总是有 1 个值?
为啥 HKSample 数组对于一个没有限制、没有谓词、没有锚点的 HKAnchoredObjectQuery 总是有 1 个值?