[英]How to query Redshift to obtain all the schema names for a specific database
I understand that a database lives inside a schema, but I'm working with an existing design.我知道数据库存在于模式中,但我正在使用现有设计。 My old query which targeted postgres is below.我的针对 postgres 的旧查询如下。 I want to recreate it for Redshift.我想为 Redshift 重新创建它。 Or some help linking a database to a schema.或者一些帮助将数据库链接到模式。
select
d.datname database_name
,s.schema_name
from pg_catalog.pg_database d
inner join information_schema.schemata s on s.catalog_name = d.datname
where d.datname = @database_name
So for some reason the "public" schemas are not included in the information_schema.schemata.所以由于某种原因,“公共”模式不包含在 information_schema.schema 中。
My current work-around is:我目前的解决方法是:
select cast(@database_name as char(150)) database_name,cast('public' as char(150)) schema_name
union all
select
cast(d.datname as char(150)) database_name
,cast(s.schema_name as char(150)) schema_name
from pg_catalog.pg_database d
inner join information_schema.schemata s on s.catalog_name = d.datname
where d.datname = @database_name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.