как получить размер и тип столбца через мою базу данных в PostgreSQL - PullRequest
14 голосов
/ 17 декабря 2010

Я изменил длину столбца вручную в моей предыдущей базе данных.

Но после создания новой базы данных через HQL она создает varchar(255), и мне нужно сделать ее длиннее.

Мне нужно найти столбец таблицы, который я должен изменить?

Я могу найти его вручную, но теперь у меня есть около 200 таблиц, и мне нужен запрос для этого.

Как узнать тип столбца и его длину в Postgres, используя SQL-запрос?

Ответы [ 2 ]

27 голосов
/ 17 декабря 2010

Таблицы INFORMATION_SCHEMA помогут вам в этом:

select *
from INFORMATION_SCHEMA.COLUMNS

Вы можете просмотреть столбцы table_name, column_name, data_type и character_maximum_length в наборе результатов.

4 голосов
/ 06 октября 2016

Наткнулся на этот старый пост.Основываясь на ответе RedFilter, вот запрос для исходного вопроса:

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

, объединяющий его с синтаксисом таблицы изменения:

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;

Надеюсь, это поможет кому-то в будущем или, по крайней мере, сэкономит ему время!

...