繁体   English   中英

如何在PostgreSQL中通过我的数据库获取列大小和类型

[英]how to get column size and type through my database in PostgreSQL

我在以前的数据库中手动更改了列长度。

但是在通过HQL创建新数据库之后,它创建了varchar(255) ,我需要让它更长。

我需要找到我应该更改哪个表的列?

我可以手动找到它,但现在我有大约200个表,我需要一个查询来执行此操作。

如何使用SQL查询在Postgres中获取列类型及其长度?

INFORMATION_SCHEMA表将在这里帮助您:

select *
from INFORMATION_SCHEMA.COLUMNS

您可以检查结果集中的table_namecolumn_namedata_typecharacter_maximum_length列。

偶然发现这个老帖子。 根据RedFilter的答案,这里是对原始问题的查询:

select table_name, 
       column_name 
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
  and character_maximum_length = 200

将它与alter table语法放在一起:

ALTER TABLE X ALTER COLUMN Y TYPE text;

您可以通过运行此查询生成所需的所有命令:

select 'ALTER TABLE ' || table_name || ' ALTER COLUMN ' || column_name || ' TYPE text;'  
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
  and character_maximum_length = 200;

希望这可以帮助将来的某个人,或者至少为他们节省一些时间!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM