1

刚从 SSMS 转移到 Redshift(使用 DBeaver),我想知道是否有一个很好的选择来获取表描述。在 SQL Server 中,您可以针对 information_schema 编写一个很好的查询来提取列名、数据类型等。Redshift 中是否有类似的选项?

4

2 回答 2

3

INFORMATION_SCHEMA 表在 Redshift 中可用。

可能是您选择的查询工具 (DBeaver) 将模式隐藏在 GUI 中。但是,您仍然应该能够正常查询它们。

当我使用 Navicat 时,这对我来说肯定是这种情况。如果您想查看架构,那么在使用 SQL Workbench 或 SQuirreL 时它是可见的。

2016-04-04:AWS 创建了一个简单的视图,它提供了完整CREATE TABLE的语句,包括所有 Redshift 特定的东西。从这里获取它们:https ://github.com/awslabs/amazon-redshift-utils/tree/master/src/AdminViews

于 2013-07-17T13:19:18.207 回答
1

看起来你正在寻找这样的东西:http ://rocky-says.blogspot.com/2015/01/amazon-redshift-generate-table-ddl.html

以下是对您有帮助的查询:只需将 <TABLE> 和 <SCHEMA> 替换为您的表名和 Schema

SELECT DISTINCT n.nspname AS schemaname
 ,c.relname AS tablename
 ,a.attname AS COLUMN
 ,a.attnum AS column_position
 ,pg_catalog.format_type(a.atttypid, a.atttypmod) AS TYPE
 ,pg_catalog.format_encoding(a.attencodingtype) AS encoding
  ,a.attisdistkey AS distkey
 ,a.attsortkeyord AS sortkey
 ,a.attnotnull AS notnull
 ,a.attencodingtype AS compression
 ,con.conkey AS primary_key_column_ids
 ,con.contype AS con_type
FROM pg_catalog.pg_namespace n
 ,pg_catalog.pg_class c
 ,pg_catalog.pg_attribute a
 ,pg_constraint con
 ,pg_catalog.pg_stats stats
WHERE n.oid = c.relnamespace
 AND c.oid = a.attrelid
 AND a.attnum > 0
 AND c.relname NOT LIKE '%pkey'
 AND lower(c.relname) = ''
 AND n.nspname = ''
 AND c.oid = con.conrelid(+)
ORDER BY A.ATTNUM
;
于 2015-01-23T18:46:57.597 回答