我创建了一个红移集群,并在里面创建了数据库。
我的模式是new_schema
我在table1
、table2
中的两个表中创建了两个表
我的问题。
-
我想列出表1 的数据类型
-
我需要将
VARCHAR
的table1
内部的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个字符。
所以你试图实现的目标似乎有点偏离了。