如何从Redshift中获取描述表并对其进行ALTER



我创建了一个红移集群,并在里面创建了数据库。

我的模式是new_schema

我在table1table2中的两个表中创建了两个表

我的问题。

  1. 我想列出表1 的数据类型

  2. 我需要将VARCHARtable1内部的description的数据类型更改为TEXT

我试图用下面的查询but nothing listing列出表1的数据类型

SELECT * FROM PG_TABLE_DEF WHERE schemaname = 'new_schema';

关于为什么您没有看到预期结果的一些可能性。最有可能的是new_schema不在您的search_path中。Pg_table_info仅返回搜索路径中表的信息-请参阅:https://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html

另一种可能性是,这些表没有数据行(没有分配块(,这可能导致一些系统表的信息不完整。

另一种可能性是,表不是由创建会话提交的,而是由另一个会话检查的。既然你说你正在创建一个新的数据库,你就会想到这一点。

svv_table_info中的表是否可见?

此外,将varchar更改为text的前提也有点偏离https://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html#r_Character_types-text和bpchar类型

您可以创建一个带有TEXT列的Amazon Redshift表,但它是转换为接受可变长度值的VARCHAR(256(列最多256个字符。

所以你试图实现的目标似乎有点偏离了。

最新更新