Amazon web services 更改红移视图以指向新表

Amazon web services 更改红移视图以指向新表,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,我用红移创建了一个简单的视图,它是select*fromsource\u a,没有模式绑定。现在我有了一个新表,source_b,我希望视图指向它,它没有新的列或数据类型 如何在不删除权限的情况下重新指向视图?您可以再次运行创建,但包含或REPLACE语法 创建或替换视图我的视图作为… 没有模式绑定; 您可以使用pg_get_viewdef检索现有视图定义 选择pg_get_viewdef('my_view',true); 首先查看创建视图文档页面- 您创建了一个后期绑定视图,该视图在执行时检

我用红移创建了一个简单的视图,它是
select*fromsource\u a,没有模式绑定
。现在我有了一个新表,
source_b
,我希望视图指向它,它没有新的列或数据类型


如何在不删除权限的情况下重新指向视图?

您可以再次运行
创建
,但包含
或REPLACE
语法

创建或替换视图我的视图作为…
没有模式绑定;
您可以使用
pg_get_viewdef
检索现有视图定义

选择pg_get_viewdef('my_view',true);

首先查看创建视图文档页面-

您创建了一个后期绑定视图,该视图在执行时检查表上的权限,因此需要确保您对新表“source_b”具有正确的权限。这些后期绑定视图是表的查找/引用,而不是数据库中的预定义链接。您也不能授予列杠杆访问后期绑定视图的权限。否则,权限的工作方式与常规视图相同

要更改视图而不必更改其权限,您需要使用“创建或替换视图…”(请参见上面的链接)来更新定义。请记住,新表的权限很重要