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