在红移中查找给定表名的架构名

umuewwlo  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(279)

如果表名是红移的,是否可以检索模式名并在找不到表时返回错误?
  SELECT * FROM PG_TABLE_DEF WHERE tablename = 'tablename'; 似乎不起作用。

bcs8qyzn

bcs8qyzn1#

pg_table_def 只允许您查看当前用户可见的表—这可能不是您要搜索的表的情况。
你可以用 pg_tables 相反(这最初是一个postgre目录视图,在redshift中记录为部分可访问):

select schemaname from pg_tables where tablename = 'mytable';

如果您的表是使用区分大小写的标识符创建的,那么您可能还面临一些大小写问题。在这种情况下:

where lower(tablename) = 'mytable';

相关问题