不支持ALTER DATABASE中的SET / RESET命令

时间:2017-11-15 22:50:00

标签: amazon-redshift

尝试将search_path修改为新的Redshift数据库时遇到此问题。

目前,我已经通过AWS的数据迁移服务将MySQL数据库的内容迁移到红移集群中。数据导入到模式中,可以调用my_schema。当我尝试对集群执行查询时,它要求我为表名添加模式名称

select * from my_schema.my_table

我想更改设置,以便我可以直接引用表而无需前缀。经过一番调查后,我发现通过修改search_path属性可以实现这一点。

首先我尝试通过运行

来做到这一点

set search_path = "$user", my_schema;

这似乎有效但后来我意识到这只是将my_schema设置为当前会话上下文中的默认模式,我希望它在数据库级别设置。我发现有几个消息来源说这样做的方法就是使用alter命令......

alter database my_db set search_path = "$user", public, my_schema

但是,运行此命令会导致以下错误,该错误以某种方式显示在0谷歌搜索结果中:

SET/RESET commmand in ALTER DATABASE is not supported

我对上面的错误怎么没有发表过关于它的帖子感到非常困惑,但我也很想知道如何解决我为我的redshift集群设置全局默认模式的初始问题。

1 个答案:

答案 0 :(得分:1)

Redshift不支持

ALTER DATABASE SET。但是,您可以使用ALTER USER SET SEARCH_PATH TO <SCHEMA1>,<SCHMEA2>;

在USER级别设置/重置配置参数

请检查:http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html http://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html

当您在search_path中为<SCHEMA1>,<SCHMEA2>设置db1时,它不仅适用于当前会话,而是为所有将来的会话设置。