尝试将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集群设置全局默认模式的初始问题。
答案 0 :(得分:1)
ALTER DATABASE SET
。但是,您可以使用ALTER USER SET SEARCH_PATH TO <SCHEMA1>,<SCHMEA2>;
请检查: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
时,它不仅适用于当前会话,而是为所有将来的会话设置。