开发者

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

开发者 https://www.devze.com 2023-01-31 07:03 出处:网络
I\'ve changed column length manually in my previous database. But after creating new database via HQL it\'s creating varchar(255) and I need to make it longer.

I've changed column length manually in my previous database.

But after creating new database via HQL it's creating varchar(255) and I need to make it longer.

I need to find which table's column should I change?

I can find it manually but now I have about 200 tables and I need a query to d开发者_JS百科o this.

How can I get the column type and its length in Postgres using a SQL query?


The INFORMATION_SCHEMA tables will help you here:

select *
from INFORMATION_SCHEMA.COLUMNS

You can examine the table_name, column_name, data_type and character_maximum_length columns in the result set.


Stumbled across this old post. Based on RedFilter's answer here is the query for the original question:

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

putting it together with the alter table syntax of:

ALTER TABLE X ALTER COLUMN Y TYPE text;

You can generate all the commands you need by running this query:

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;

Hope this helps someone in the future, or at least saves them some time!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号