Redshift中执行SHOW CREATE TABLE的最简方法及表查询问题
解决Redshift中获取表创建语句、验证Sort Keys及系统表无数据的问题
嘿,针对你遇到的几个Redshift相关问题,我整理了最实用的解决方案:
1. 获取表创建语句的最简方法
Redshift直接支持SHOW CREATE TABLE语句,这就是最简便的方式——执行后会返回完整的建表SQL,包括Sort Keys、Dist Keys、列约束等所有细节,完美满足你验证Sort Keys的需求:
-- 如果表在自定义schema下 SHOW CREATE TABLE your_schema.your_table_name; -- 如果表在默认public schema下,可省略schema名 SHOW CREATE TABLE your_table_name;
2. 为什么svv_table_info看不到新建表?
这大概率是权限或范围的问题,常见原因有这几个:
- 权限不足:
svv_table_info只展示当前用户拥有SELECT权限的表。如果你的新建表是其他用户创建的,或者当前用户没被授权访问它,就不会出现在结果里。可以先给当前用户赋权:GRANT SELECT ON your_table_name TO current_user; - 未指定目标Schema:如果表不在默认的
publicschema下,查询时需要明确过滤schema,或者确保你的搜索路径包含该schema:SELECT * FROM svv_table_info WHERE schemaname = 'your_target_schema'; - 连接的数据库不匹配:
svv_table_info只显示当前连接数据库中的表,如果你新建表的数据库和当前连接的不是同一个,自然看不到。可以用这条语句确认当前数据库:SELECT current_database();
3. 快速验证Sort Keys的其他方式
除了看建表语句,你也可以直接从svv_table_info提取Sort Key相关信息:
SELECT schemaname, tablename, sortkey1, sortkey2, sortkey3, -- 对应第1、2、3个排序键 sortkey_num -- 排序键的总数量 FROM svv_table_info WHERE tablename = 'your_table_name';
内容的提问来源于stack exchange,提问作者DatWunGuy102
相关产品推荐
相关产品推荐

